【问题标题】:Is there anything similar to Chrome's fileSystem API for Firefox addons?有没有类似于 Chrome 的用于 Firefox 插件的文件系统 API 的东西?
【发布时间】:2016-03-03 08:27:15
【问题描述】:

我制作了一个 Chrome 应用程序,它严重依赖 Chrome 的 fileSystem API 来记录和保存来自各种网站的视频流。由于流数据在保存之前在 javascript 中处理,因此仅下载流是行不通的。

现在我正在考虑制作一个 Firefox 版本...

我知道Firefox有一个sandboxed文件系统API,但据我所知,无法将文件保存到物理文件系统。

我能看到的唯一选项是从沙盒文件系统创建一个 blob 并下载该 blob。

其实我有两个问题:

  1. 我是否错过了从 Firefox 插件直接在物理文件系统中创建和保存文件的任何选项?

  2. 即使我必须依赖沙盒文件系统,是否可以以附加模式打开文件,即。将数据附加到现有文件?

【问题讨论】:

标签: javascript firefox firefox-addon


【解决方案1】:

您的第一个问题是:有io/file API。打开文件会返回一个流 (io/bytestream)。文档中的示例

function readBinaryDataFromFile (filename) {
  var fileIO = require("sdk/io/file");
  var data = null;
  if (fileIO.exists(filename)) {
    var ByteReader = fileIO.open(filename, "rb");
    if (!ByteReader.closed) {
      data = ByteReader.read();
      ByteReader.close();
    }
  }
  return data;
}

function writeBinaryDataToFile(data, filename) {
  var fileIO = require("sdk/io/file");
  var ByteWriter = fileIO.open(filename, "wb");
  if (!ByteWriter.closed) {
    ByteWriter.write(data);
    ByteWriter.close();
  }
}

【讨论】:

  • 谢谢。在链接页面上,我读到:“无法以附加模式打开文件。”所以目前我的应用无法移植到 Firefox。
  • Firefox 有多年的扩展,我链接的是新的 API,旧的 API 仍然存在,并且有数百个扩展操作文件没有问题。另一个文档链接:developer.mozilla.org/en-US/docs/Mozilla/… 另一个:developer.mozilla.org/en-US/Add-ons/Code_snippets/File_I_O
  • 感谢您的更新。你确实是对的,有扩展操作文件。我发现 SQLite 管理器肯定会在本地文件系统上读写文件。
猜你喜欢
  • 1970-01-01
  • 2016-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-17
相关资源
最近更新 更多