在 VSCode 扩展中,如何用从另一个文件读取的内容填充一个未命名的未保存文件?

In VSCode extension, how to fill an untitled unsaved file with content read from another file?

使用 VSCode 1.61.2,我正在做一个扩展,它必须在编辑器中打开一个空的、未保存的文件。

第一部分,没有填写文档,按照下面的方式完成,效果很好:

vscode.workspace.openTextDocument({
    language: "json",
    content: "toto"
})

但是,我希望内容填充位于扩展代码源中的文件的内容。该文件位于:

src/my-file.json

到目前为止我有:

vscode.workspace.openTextDocument("src/my-file.json").then((file) => {
    vscode.workspace.openTextDocument({
        language: "json",
        content: file.getText()
    })
})

但是,这会抛出:

rejected promise not handled within 1 second: Error: cannot open file:///src/my-file.json. Detail: Unable to read file '\src\my-file.json' (Error: Unable to resolve nonexistent file '\src\my-file.json')

我高度怀疑 workspace 指的是用户工作区,因此文件不存在,这解释了错误。

但是,如果我是对的,我在 the api 中没有找到任何允许读取扩展文件的内容。

如何读取我的扩展源文件并将其写入编辑器中未保存的空文件?

在扩展中创建路径

let srcfolder = path.join(__dirname, 'src', 'my-file.json');

或者使用activate函数的参数ExtensionContext,使用成员extensionUri这也是web扩展保存,使用vscode.workspace.fs读取文件