使用chrome.filesystem保存并更改文件的名称

时间:2015-02-11 17:31:36

标签: javascript html5 filesystems google-chrome-app

这可以通过chrome.fileSystem将文件保存在客户端的磁盘上,但是可以通过更改文件名来实现。例如,我压缩一个文件,我希望该文件以我的新名称newFile.min.js存储在光盘上。我可以将文件保存到磁盘,但不能更改其名称。而我想要的是,一切都是在“无声”的情况下完成的,没有一个要求位置的窗口。

以下是我用来保存文件的功能:

    function saveToEntry(entry, result) {
  setTitle();

  var blob = new Blob([result], {type: 'text/plain'});
  currentEntry.createWriter(function(writer) {
    writer.onwrite = function() {
      writer.onwrite = null;
      writer.write(blob);
    }
    writer.truncate(blob.size);
  });
}

function setTitle() {
  chrome.fileSystem.getDisplayPath(
      currentEntry,
      function(path) {
console.log(path);
        document.title = path;
      });
}

这可能吗?如果是这样,如果你有任何指导我的例子会很棒。如果没有,也会很棒:)。

提前感谢您的建议!

1 个答案:

答案 0 :(得分:2)

为此(保存在单独的文件中),我担心您需要询问用户对文件夹的写访问权限,而不是单个文件。然后,您就可以在其中创建一个新文件。

我建议您要么让用户选择"工作"目录,从该文件夹中显示应用程序内文件选择器,并将结果保存在普通文件旁边。

或者,要求用户选择"输出"文件夹,并将结果转储到那里。


另一种解决方案是要求Native Host module。您将能够以与用户相同的权限访问系统。但是,它会限制您的部署选项:您的模块需要单独的安装程序,而这些安装程序无法托管在Chrome网上应用店中。