有没有类似Chrome的Firefox插件的fileSystem API的东西?

问题描述:

我制作了一款Chrome应用,它主要依靠Chrome的fileSystem API来记录和保存来自各个网站的视频流。由于流数据在保存之前是使用JavaScript处理的,因此只需下载流即可。有没有类似Chrome的Firefox插件的fileSystem API的东西?

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

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

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

我有实际上是两个问题:

  1. 是否有我错过了创造和火狐浏览器安装在物理文件系统直接将文件保存任何选项?

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

+1

是你的第一个问题的例子:https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/io_file打开一个文件返回一个流,你有使用流的文档(这些示例是关于文件的):https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/io_byte-streams – Shanoor

是的,你的第一个问题:有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(); 
    } 
} 
+1

谢谢。在链接页面上,我读到:“无法以附加模式打开文件。”所以目前我的应用程序无法移植到Firefox。 – marlar

+0

Firefox有多年的扩展,我链接的是新的API,旧版API仍然存在,并且有数百个扩展操作文件,没有问题。另一个文档链接:https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/FileUtils.jsm#openFileOutputStream%28%29另一个:https://developer.mozilla.org/en-US/附加组件/ Code_snippets/File_I_O – Shanoor

+0

感谢您的更新。你确实是对的,有扩展操纵文件。我发现SQLite Manager确实在本地文件系统上读写文件。 – marlar