Mozilla附加SDK - OS.File.read(系统找不到指定的文件。)

时间:2014-10-13 19:01:39

标签: sdk firefox-addon mozilla

我在Mozilla的教程之后创建了一个附加组件。 cfx testcfx run完美无缺。我将文件夹放在桌面上,然后使用cfx xpi和Ctrl + o(xpi文件)将附加组件安装到Firefox中。

现在,附加组件在控制台日志中出现此错误:

  

在文件purls.txt上打开操作期间赢得错误2(系统不能   找到指定的文件。)

以下是main.js中的相关代码:

const {TextEncoder, TextDecoder, OS} = Cu.import("resource://gre/modules/osfile.jsm", {});
let decoder = new TextDecoder();
let promise = OS.File.read("purls.txt").then(
    function onSuccess(array) {
        // Do stuff
    },
    function onReject(reason) {
        console.error("Couldn't read from purls.txt:\n"+reason);
    }
);

请帮我弄清楚发生了什么。当我使用cfx run时,加载项会找到purls.txt文件并打开它/从中读取而没有问题。

1 个答案:

答案 0 :(得分:1)

你没有给它一个purls.txt的路径,所以它可能在你的驱动器上寻找purls.txt。它在桌面上吗?然后创建一个桌面路径。见pathToPurls;

const {TextEncoder, TextDecoder, OS} = Cu.import("resource://gre/modules/osfile.jsm", {});
let decoder = new TextDecoder();
let pathToPurls = OS.Path.join(OS.Constants.Path.desktopDir, "purls.txt");
console.log('pathToPurls:', pathToPurls);
let promise = OS.File.read(pathToPurls).then(
    function onSuccess(array) {
        // Do stuff
    },
    function onReject(reason) {
        console.error("Couldn't read from purls.txt:\n"+reason);
    }
);