我应该如何访问 VSCode 用户的文件系统?

How should I access the file system of the VSCode's user?

所以我正在做一个 VSCode 扩展。它应该读取和修改用户文件系统的文件。我应该使用节点的 fs 还是应该使用一些 VSCode 的 interface/API?

如果后者是正确的,那么我需要的 API 命名空间是什么(工作空间或其他)?

如果前者没问题,我怎么可能真正使用fs?如果用户没有安装 node.js 怎么办?或者它总是安装 VSCode?

视情况而定。

一般使用 vscode 的 TextDocument api 用于:

  • 正在从工作区读取文本文件。这 api 确保您始终读取文件的当前状态(即使它尚未保存到磁盘)。
  • 正在修改工作区中的文本文件内容。您还可以使用 save 将修改后的文件写回磁盘。
  • 正在从文件系统提供商处读取资源

fs 用于:

  • 读取和写入工作区外的文件。
  • 读写不应被 VS Code 跟踪的文件。打开 TextDocument 可能会导致 VS Code 及其扩展尝试处理该文件。
  • 读写二进制文件。

This api proposal 您也会感兴趣。它将直接使用 VS Code 启用更多低级文件 reading/writing。

(此外,您始终可以安全地使用节点,因为 VS Code 包含一个供扩展使用的副本)