2012-08-05 64 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