File and Directory Entries API support in Firefox

这篇翻译不完整。请帮忙从英语翻译这篇文章

非标准
该特性是非标准的,请尽量不要在生产环境中使用它!

创建原始文件系统API是为了让浏览器实现对访问用户存储设备上沙箱虚拟文件系统的支持。标准化规范的工作早在2012年就被放弃了,但到那时,谷歌Chrome包含了自己的API实现。随着时间的推移,许多流行的站点和Web应用程序开始使用它,通常不提供任何退回到标准API的方法,甚至在使用之前也没有检查API是否可用。相反,Mozilla选择实现其他api,这些api可以用来解决许多相同的问题,比如IndexedDB;查看博客文章,为什么Firefox中没有文件系统API ?更多的见解。

 

这导致许多流行的网站无法在Chrome以外的浏览器上正常运行。因此,我们尝试创建一个规范,提供可以达成共识的谷歌API的特性。结果是文件和目录API条目。Chrome提供的这个API子集还没有完全指定;但是,出于web兼容性的原因,决定在Firefox中实现API的一个子集;这是在Firefox 50中引入的。

本文描述了文件和目录条目API的Firefox实现与其他实现和/或规范的不同之处。

Chrome 规范偏差

最大的兼容性问题仍然存在,Chrome仍然使用旧的名称为许多接口的API,因为他们实现了一个相关的,但不同的规范:

规范名称 Google Chrome 使用的名称
FileSystemDirectoryEntry DirectoryEntry
FileSystemDirectoryEntrySync DirectoryEntrySync
FileSystemDirectoryReader DirectoryReader
FileSystemDirectoryReaderSync DirectoryReaderSync
FileSystemEntry Entry
FileSystemEntrySync EntrySync
FileSystemFileEntry FileEntry
FileSystemFileEntrySync FileEntrySync

请确保在代码中考虑到这一点,允许使用这两个名称。希望Chrome能很快更新,使用新的名字!

为了确保你的代码可以在Chrome和其他浏览器上运行,你可以包括如下代码:

var FileSystemDirectoryEntry = window.FileSystemDirectoryEntry || window.DirectoryEntry;
var FileSystemEntry = window.FileSystemEntry || window.Entry;

Firefox 中的限制

接下来,让我们看看API的Firefox实现的局限性。概括地说,这些限制可以概括如下:

另请参阅

文档标签和贡献者

此页面的贡献者: xiaoxingchi
最后编辑者: xiaoxingchi,