如何使用Chrome App Filesystem API



我想使用chrome.filesystem API在c:/或任何地方创建一个新文件,但是我不知道如何使用此API。

我找不到文件路径的任何参数,唯一的是fileentry,但是如何使用c://a/b/c?

生成fileentry

Chrome应用程序的限制 - 出于安全原因 - 可以访问哪些文件。基本上,用户需要批准从应用程序访问到已访问的文件和目录的访问。

访问应用程序沙箱以外的文件的唯一方法是通过用户手势 - 也就是说,您需要向用户询问文件。您可以使用chrome.fileSystem.chooseEntry

如果这并不明显,也许您可以更多地解释您要使用这些文件的方法,我们可以就最佳方法提供建议。通常chrome.fileSystem不是数据存储的最佳选择 - 还有其他更方便和沙盒的交点,例如chrome.storage

使用有点棘手。但是,它遵循其他语言使用的相同模型,除了由于所有回调而更具欺骗性。这是我写的函数,以获取一个嵌套文件条目,并随着目录的形式创建目录。也许这可以帮助您入门。

对于此函数,您将传递到一个文件系统中,该文件系统您会从Chrome.filesystem.filesystem.ChooseEntry带有目录类型选项中获得,而路径将在您的示例中['a''',''b','c']

function recursiveGetEntry(filesystem, path, callback) {
  function recurse(e) {
      if (path.length == 0) {
          if (e.isFile) {
              callback(e)
          } else {
              callback({error:'file exists'})
          }
      } else if (e.isDirectory) {
          if (path.length > 1) {
              e.getDirectory(path.shift(), {create:true}, recurse, recurse)
          } else {
              e.getFile(path.shift(), {create:true}, recurse, recurse)
          }
      } else {
          callback({error:'file exists'})
      }
  }
  recurse(filesystem)
}

最新更新