我制作的Chrome应用程序非常依赖Chrome的fileSystem API来记录和保存来自各种网站的视频流。由于流数据在保存之前以javascript格式处理,因此只需下载流即可。
现在我正在考虑制作Firefox版本......
我知道Firefox有一个sandboxed
文件系统API,但据我所知,无法将文件保存到物理文件系统。
我只能看到从沙盒文件系统创建blob并下载该blob的选项。
我实际上有两个问题:
我是否有任何错过在Firefox插件中直接在物理文件系统中创建和保存文件的选项?
即使我必须依赖沙盒文件系统,也可以在追加模式下打开文件,即。将数据附加到现有文件?
答案 0 :(得分:0)
是的,您的第一个问题是: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();
}
}