我的附加组件 Color Source 需要在附加content
组件未解压缩(即,作为 XPI 压缩保存)时迭代我的附加组件内的目录(例如,子目录)中的文件。
我们使用这样的代码来获取 Addon 对象:
Cu.import("resource://gre/modules/AddonManager.jsm", null)
.AddonManager
.getAddonByID(
"color_source@brett.zamir",
function(addon) {
var uri = addon.getResourceURI();
}
);
为了将路径传递给new OS.File.DirectoryIterator
,我们尝试了:
OS.Path.join(uri.path, 'content');
这显然适用于 *nix 但不适用于 Windows- 获取然后克隆
uri.QueryInterface(Ci.nsIFileURL).file
,然后调用append('content')
克隆并且这有效,但仅当插件将<em:unpack>
指令设置为 true 时install.rdf
。
即使加载项被压缩,我们如何获得有效的路径?
(注意:我在这篇文章中添加了一个 Firefox 插件标签,因为那里的问题应该类似)