Firefox扩展:下载并解压缩ZIP

Firefox扩展:下载并解压缩ZIP,firefox,firefox-addon,Firefox,Firefox Addon,如何下载ZIP文件并将其解压缩到扩展文件夹? 需要从在线存储的ZIP包更新我的资源/配置 这可能吗 请给我指一下文档或示例 谢谢在Firefox 4+中,您可以获得如下扩展目录: Components.utils.import("resource://gre/modules/AddonManager.jsm"); Components.utils.import("resource://gre/modules/Services.jsm"); AddonManager.getAddonByID(ex

如何下载ZIP文件并将其解压缩到扩展文件夹?
需要从在线存储的ZIP包更新我的资源/配置

这可能吗

请给我指一下文档或示例


谢谢

在Firefox 4+中,您可以获得如下扩展目录:

Components.utils.import("resource://gre/modules/AddonManager.jsm");
Components.utils.import("resource://gre/modules/Services.jsm");
AddonManager.getAddonByID(extensionID, function(addon) {
  var extensionDir =
    Services.io.getProtocolHandler("file").QueryInterface(Ci.nsIFileProtocolHandler).
      getFileFromURLSpec(addon.getResourceURI(null).spec);
}
var zipReader = Cc["@mozilla.org/libjar/zip-reader;1"].createInstance(Ci.nsIZipReader);
要从扩展名下载文件,请使用以下命令创建XMLHttpRequest:

var xhr = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Ci.nsIXMLHttpReques‌​t);
您可以使用nsIZipReader XPCOM接口读取ZIP文件(请参阅)。按如下方式实例化组件:

Components.utils.import("resource://gre/modules/AddonManager.jsm");
Components.utils.import("resource://gre/modules/Services.jsm");
AddonManager.getAddonByID(extensionID, function(addon) {
  var extensionDir =
    Services.io.getProtocolHandler("file").QueryInterface(Ci.nsIFileProtocolHandler).
      getFileFromURLSpec(addon.getResourceURI(null).spec);
}
var zipReader = Cc["@mozilla.org/libjar/zip-reader;1"].createInstance(Ci.nsIZipReader);

谢谢,请通过what call将ZIP下载到该目录?或者到任何它将保留在浏览器缓存中的目录?您是在询问如何从服务器下载ZIP文件还是如何解压?如何通过扩展下载,解压是通过提取调用完成的,使用
var xhr=Cc[“@mozilla.org/xmlextras/XMLHttpRequest;1”].createInstance(Ci.nsIXMLHttpRequest)创建一个XMLHttpRequest。然后可以像任何普通的XMLHttpRequest一样使用它来下载文件。