我开发了一个firefox插件,可以在插件文件夹中存储一些数据。如何添加备份按钮,因此当用户单击它时,会显示一个保存对话框,并将该文件夹打包为zip文件并存储在用户所需的位置?
答案 0 :(得分:2)
可以使用zip reader和zip writer界面。
以下是在SDK模块中使用它的示例:https://github.com/voldsoftware/ziputils-jplib/blob/master/lib/ziputils.js
答案 1 :(得分:1)
实际上,Add-on SDK没有任何模块可以写入ZIP文件。但是,使用chrome authority,您可以访问底层平台的nsIZipWriter
interface。例如:
var {Cc, Ci, Cu} = require("chrome");
var {FileUtils} = Cu.import("resource://gre/modules/FileUtils.jsm");
var zipFile = FileUtils.getFile("ProfD", ["test.zip"], false);
var savedFile = new FileUtils.File("C:\\foo.exe");
var zipWriter = Cc["@mozilla.org/zipwriter;1"].createInstance(Ci.nsIZipWriter);
zipWriter.open(zipFile, FileUtils.MODE_WRONLY | FileUtils.MODE_CREATE);
zipWriter.addEntryFile("foo.exe", zipWriter.COMPRESSION_BEST, savedFile, false);
zipWriter.close();
这将在用户的个人资料目录中创建一个test.zip
文件,并将c:\foo.exe
写入其中。另请参阅FileUtils
documentation。