4

我在Chrome Packaged App中使用HTML5 FileSystem API写入日志文件。我希望用户能够下载这个文件,所以我尝试了一些类似的东西:

fs.root.getFile('log.txt', {create: false}, function(fileEntry) {
  var url = fileEntry.toURL();
  // do something with the file url
});

但这无济于事,因为 URL 类似于filesystem:chrome-extension://eekedjcagggbfigdmifkmhkjbhiklnpj/temporary/log.txt并且无法在某处打开它。

您会推荐什么技术来使打包应用程序中的文件系统 API 文件可下载?

编辑:阅读下面 Ben Well 的回答后,我意识到我必须进一步澄清我想要的东西。如果有一种技术不意味着加载 HTML5 Filesystem API 文件内容,从中构建一个 blob 并使用chrome.fileSystem API将其写入用户选择的路径,那对我来说似乎特别好。

4

1 回答 1

4

您是否尝试过使用chrome.fileSystem.chooseEntry?这个 API 让你的应用程序可以将文件保存到用户的硬盘上,无论他们想要什么,让你的程序有一个另存为类型的命令。这与下载链接有点不同,但也更符合 V2 应用程序的原生应用程序。

chrome.fileSystem 会弹出一个对话框,要求用户选择文件的位置。如果您使用保存文件的选项,这将返回一个文件条目,该条目有权写入用户选择的位置。当您使用这些选项时,用户还可以创建新文件。

于 2013-05-07T05:31:39.897 回答