我正在构建一个扩展来使用 vs 代码扩展来解析 json。所以我的需要是,它应该能够从特定文件夹加载 .json 文件并遍历文件的内容。然后它应该允许用户从中选择几个键,从中创建一个新的 json 文件并将其保存在任何文件夹中。
但我无法找到任何方法来读取和写入“vs 代码扩展”中的文件。有人可以帮帮我。
我正在构建一个扩展来使用 vs 代码扩展来解析 json。所以我的需要是,它应该能够从特定文件夹加载 .json 文件并遍历文件的内容。然后它应该允许用户从中选择几个键,从中创建一个新的 json 文件并将其保存在任何文件夹中。
但我无法找到任何方法来读取和写入“vs 代码扩展”中的文件。有人可以帮帮我。
如果要读取文件的当前编辑状态,可以使用以下 API工作区函数:
vscode.workspace.openTextDocument(uri).then((document) => {
let text = document.getText();
});
这将向您显示文件的当前状态,包括未持久的更改。document
是类型,如果它有待处理的更改TextDocument
,则isDirty
设置为。true
Since the extension runs in nodejs, you should be able to use any nodejs module built-in or installed by npm in the usual way.
For your purpose you will be OK with the built-in fs module: https://nodejs.org/dist/latest-v6.x/docs/api/fs.html
In your extension you will need to import the required module, so your code file should contain this:
let fs = require("fs");
and then use the methods in the usual way, eg. fs.fileReadSync( filename, encoding )
...
Please not that there is one exception. If you install a nodejs module containing compiled, binary code, it will not run in the extension and instead you will see an error message saying something like %1 is not a valid Win32 application. Pure javascript modules are OK, though.
VSCode 扩展在 node.js 中运行。因此,您可以在扩展中使用任何可用的 node.js 包/模块。例如,查看这个问题以阅读 JSON。
对于 JSON,您只需要require
或import
JSON 文件,例如:
const jsonObject = require('./myJSONfile.json');
// do something
对于带有注释的 JSON,您可以使用node-jsonc-parser。
操作完成后,就可以使用fs
nodej.js的模块写入磁盘了。