如何在Xul中读取文件?

时间:2011-04-15 18:31:52

标签: file file-io xul

使用this example

var data = "";

Components.utils.import("resource://gre/modules/NetUtil.jsm");

NetUtil.asyncFetch(filename, function(inputStream, status) {
  if (!Components.isSuccessCode(status)) {
    error("Error reading file. Details:\n" + status);
    return;
  }

  // The file data is contained within inputStream.
  // You can read it into a string with
  data = NetUtil.readInputStreamToString(inputStream, inputStream.available());
});

我得到了:

  

错误:未捕获的异常:   [例外......“必须有一个频道和   回调“nsresult:”0x80070057   (NS_ERROR_ILLEGAL_VALUE)“位置:   “JS框架::   铬://myapp/content/js/utils.js   :: readFile :: line 234“data:no]

第234行指的是:

NetUtil.asyncFetch(filename, function(inputStream, status) {

this other example使用IO xpcom,这是不可用的,我在哪里可以找到它?

有一种简单的方法可以在Xul中用单行文本读取文件吗?

1 个答案:

答案 0 :(得分:2)

您需要nsIFile(或可能是nsIChannel)作为第一个参数(取决于您的Firefox版本)。请参阅documentation for more details