2012-08-05 63 views
1

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

回答

1

因为它是,加载项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