0

我正在尝试在我的扩展目录中创建一个文件,并且我有以下代码:

AddonManager.getAddonByID(" extension id here ", function(addon)
{
    var uri = addon.getResourceURI("hello.txt");
    var file = Components.classes["@mozilla.org/file/local;1"]
            .createInstance(Components.interfaces.nsILocalFile);
    var stringUri = uri.asciiSpec;
    stringUri = stringUri.replace(new RegExp(/\//g), '\\');
    stringUri = stringUri.slice(8);
    alert(stringUri);
    try{
        file.initWithPath(stringUri);
    } catch(e) {
        alert(e);
    }
    alert(addon.hasResource("hello.txt"));
});

但由于某种原因,最后一个警报始终显示为 false 并且文件不存在。我究竟做错了什么?

我还在 install.rdf 中放了 unpack true unpack 标签以查看 ny 扩展目录

先谢谢了。

4

1 回答 1

0

initWithPath只接受本地文件系统路径。假设uri是一个文件 url,你可以像这样进行转换

var path = uri.QueryInterface(Components.interfaces.nsIFileURL).file.path
于 2013-07-30T15:14:26.977 回答