小唯快跑啊
如前所述,FileSystem和File API以及FileWriter API可用于从浏览器选项卡/窗口的上下文读取和写入文件到客户端计算机。有一些与FileSystem和FileWriter API有关的事情,你应该知道,其中一些被提到,但值得重复:API的实现目前仅存在于基于Chromium的浏览器(Chrome和Opera)中这两个API均于2014年4月24日从W3C标准轨道中删除,截至目前为专有从未来实现浏览器中删除(现在的专有)API是可能的甲沙箱(在磁盘上以外的位置,其中文件可以产生没有影响)用于存储与所述的API所创建的文件使用虚拟文件系统(磁盘上不一定存在的目录结构与从浏览器中访问时所使用的形式相同)表示使用API创建的文件以下是如何直接和间接使用API来执行以下操作的简单示例:BakedGoods *写文件:bakedGoods.set({
data: [{key: "testFile", value: "Hello world!", dataFormat: "text/plain"}],
storageTypes: ["fileSystem"],
options: {fileSystem:{storageType: Window.PERSISTENT}},
complete: function(byStorageTypeStoredItemRangeDataObj, byStorageTypeErrorObj){}});阅读文件:bakedGoods.get({
data: ["testFile"],
storageTypes: ["fileSystem"],
options: {fileSystem:{storageType: Window.PERSISTENT}},
complete: function(resultDataObj, byStorageTypeErrorObj){}});使用原始文件,FileWriter和FileSystem API写文件:function onQuotaRequestSuccess(grantedQuota){
function saveFile(directoryEntry)
{
function createFileWriter(fileEntry)
{
function write(fileWriter)
{
var dataBlob = new Blob(["Hello world!"], {type: "text/plain"});
fileWriter.write(dataBlob);
}
fileEntry.createWriter(write);
}
directoryEntry.getFile(
"testFile",
{create: true, exclusive: true},
createFileWriter );
}
requestFileSystem(Window.PERSISTENT, grantedQuota, saveFile);}var desiredQuota = 1024 * 1024 * 1024;var quotaManagementObj =
navigator.webkitPersistentStorage;quotaManagementObj.requestQuota(desiredQuota, onQuotaRequestSuccess);阅读文件:function onQuotaRequestSuccess(grantedQuota){
function getfile(directoryEntry)
{
function readFile(fileEntry)
{
function read(file)
{
var fileReader = new FileReader();
fileReader.onload = function(){var fileData = fileReader.result};
fileReader.readAsText(file);
}
fileEntry.file(read);
}
directoryEntry.getFile(
"testFile",
{create: false},
readFile );
}
requestFileSystem(Window.PERSISTENT, grantedQuota, getFile);}var desiredQuota = 1024 * 1024 * 1024;var quotaManagementObj =
navigator.webkitPersistentStorage;quotaManagementObj.requestQuota(desiredQuota, onQuotaRequestSuccess);虽然FileSystem和FileWriter API不再符合标准,但在我看来,在某些情况下,它们的使用是合理的,因为:来自未实现的浏览器供应商的更新兴趣可能会将它们重新置于其上实施(基于Chromium)浏览器的市场渗透率很高谷歌(Chromium的主要贡献者)尚未给出API的生命终止日期但是,“某些情况”是否包含您自己的情况,由您决定。* BakedGoods由这个人维持正确:)