使用文件I / O XPCOM

时间:2016-03-12 02:57:10

标签: filesystems cross-platform inputstream readfile pathname

我想阅读一个文本文件,我注意到MDN page OS.File实际上优先于文件I / O 。但是,在第二个链接之后,我发现here代码不起作用: promise 不起作用,并且onSuccess函数块未被执行;我还不能理解要作为OS.File.read的参数放置的字符串(绝对路径,文件名或其他什么?)。此外,还有另一个需要关注的重点:在这个 OS.File 上下文中,似乎不可能指定当前工作目录(即应用程序的安装目录)。确实here使用OS.Constants.Path.desktopDir指向标准的桌面目录,但正如我们所看到的那样here没有模式可以使工作目录独立于添加的当前平台运行

出于这个原因,我选择了较旧的文件I / O 界面,因为这里似乎可以找到工作目录的路径(如您所见here)。现在的问题是我遇到了同样的麻烦,即没有发生读数。我正在使用此代码:

    NetUtil.asyncFetch(file, function(inputStream, status) {
    if (!Components.isSuccessCode(status)) {
        console.log("Error");
        return;
    }
    var data = NetUtil.readInputStreamToString (inputStream,
                                              inputStream.available());
    console.log(data);
    });
建议here

。同样,回调似乎不受执行的影响,因此没有可用的文本输出。

我哪里错了?

(对于我使用过的变量file

let { Cu } = require('chrome');
Cu.import("resource://gre/modules/FileUtils.jsm");
var file = FileUtils.getFile("CurProcD", ["file"]);

编辑:也许console.log(data)没有发生,因为操作是异步的?

0 个答案:

没有答案