1

我开发了一个 Firefox 插件,将一些数据存储在插件文件夹中。如何添加备份按钮,以便当用户单击它时,会显示一个保存对话框并将文件夹打包在一个 zip 文件中并存储在用户所需的位置?

4

2 回答 2

2

有一个zip readerzip writer界面可用。

这是在 SDK 模块中使用它的示例:https ://github.com/voldsoftware/ziputils-jplib/blob/master/lib/ziputils.js

于 2012-08-05T11:16:24.953 回答
1

事实上,附加 SDK 没有任何模块来编写 ZIP 文件。但是,通过chrome 权限,您可以访问底层平台的nsIZipWriter接口。例如:

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文档

于 2012-08-06T08:05:24.093 回答