【问题标题】:Read and Write file using vs code extension使用 vs 代码扩展读写文件
【发布时间】:2016-12-11 10:52:11
【问题描述】:

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

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

【问题讨论】:

    标签: json visual-studio-code vscode-extensions


    【解决方案1】:

    如果要读取文件的当前编辑状态,可以使用以下 API workspace 函数:

    vscode.workspace.openTextDocument(uri).then((document) => {
      let text = document.getText();
    });
    

    这将显示文件的当前状态,包括未持久的更改。 document 的类型为 TextDocument,如果有待处理的更改,则将 isDirty 设置为 true

    【讨论】:

      【解决方案2】:

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

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

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

      let fs = require("fs");
      

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

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

      【讨论】:

        【解决方案3】:

        VSCode 扩展在 node.js 中运行。因此,您可以在扩展中使用任何可用的 node.js 包/模块。例如,查看this question for reading JSON

        【讨论】:

          【解决方案4】:

          对于JSON,你只需要require或者import这个JSON文件,比如:

          const jsonObject = require('./myJSONfile.json');
          // do something
          

          对于带有 cmets 的 JSON,您可以使用 node-jsonc-parser

          操作完成后,可以使用nodej.js的fs模块写入磁盘。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2022-06-14
            • 2020-08-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-09-18
            相关资源
            最近更新 更多