在Firefox插件中制作zip文件

时间:2012-08-05 10:50:04

标签: firefox-addon firefox-addon-sdk

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

2 个答案:

答案 0 :(得分:2)

可以使用zip readerzip 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