Javascript 有没有类似于Chrome';Firefox插件的文件系统API?

Javascript 有没有类似于Chrome';Firefox插件的文件系统API?,javascript,firefox,firefox-addon,Javascript,Firefox,Firefox Addon,我制作了一个Chrome应用程序,它严重依赖Chrome的文件系统API来记录和保存来自不同网站的视频流。因为流数据在保存之前是用javascript处理的,所以简单地下载流是不起作用的 现在我正在考虑制作一个Firefox版本 我知道Firefox有一个沙盒文件系统API,但据我所知,无法将文件保存到物理文件系统 我能看到的唯一选择是从沙盒文件系统创建一个blob并下载该blob 我实际上有两个问题: 我是否错过了从Firefox插件直接在物理文件系统中创建和保存文件的选项 即使我必须依赖沙盒

我制作了一个Chrome应用程序,它严重依赖Chrome的文件系统API来记录和保存来自不同网站的视频流。因为流数据在保存之前是用javascript处理的,所以简单地下载流是不起作用的

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

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

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

我实际上有两个问题:

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

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


  • 你的第一个问题是:有API。打开文件将返回一个流()。文档中的示例

    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仍然存在,并且有数百个扩展操作文件没有问题。另一个文档链接:另一个:谢谢更新。你确实是对的,有一些扩展操作文件。我找到了SQLite管理器,它可以读取和写入本地文件系统上的文件。