有什么类似于Chrome的东西吗;用于Firefox插件的fileSystem API

Is there anything similar to Chrome's fileSystem API for Firefox addons?

本文关键字:Firefox 用于 插件 API fileSystem 类似于 什么 Chrome      更新时间:2023-09-26

我制作了一款Chrome应用程序,该应用程序在很大程度上依赖Chrome的fileSystem API来记录和保存来自不同网站的视频流。由于流数据在保存之前是用javascript处理的,因此简单地下载流是行不通的。

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

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

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

实际上我有两个问题:

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

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

对您的第一个问题是肯定的:存在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();
  }
}