使用vs代码扩展读写文件

use*_*252 9 json visual-studio-code vscode-extensions

我正在构建一个使用vs代码扩展来解析json的扩展.所以我的需要是,它应该能够从特定文件夹加载.json文件并迭代文件的内容.然后它应该允许用户从中选择几个键,从中创建一个新的json文件,并将其保存在任何文件夹中.

但我无法找到任何方式来读取和写入"vs代码扩展"中的文件.有人可以帮助我.

Ste*_*fen 12

如果要读取文件的当前编辑状态,可以使用以下API 工作区功能:

vscode.workspace.openTextDocument(uri).then((document) => {
  let text = document.getText();
});
Run Code Online (Sandbox Code Playgroud)

这将显示文件的当前状态,包括未加载的更改.document是类型TextDocument,如果它有挂起的更改isDirty,true则设置为.


sea*_*rth 5

VSCode 扩展在 node.js 中运行。因此,您可以在扩展中使用任何可用的 node.js 包/模块。例如,查看这个问题来阅读 JSON


Jin*_*ska 5

由于扩展在 nodejs 中运行,因此您应该能够以通常的方式使用 npm 内置或安装的任何 nodejs 模块。

为了您的目的,您可以使用内置的fs模块:https : //nodejs.org/dist/latest-v6.x/docs/api/fs.html

在您的扩展中,您需要导入所需的模块,因此您的代码文件应包含以下内容:

let fs = require("fs");
Run Code Online (Sandbox Code Playgroud)

然后以通常的方式使用这些方法,例如。fs.fileReadSync( filename, encoding )...

请注意,只有一个例外。如果您安装包含已编译二进制代码的 nodejs 模块,它将不会在扩展中运行,而是会看到一条错误消息,指出%1 不是有效的 Win32 应用程序。 不过,纯 javascript 模块还可以。