File and Directory Entries API - 用于模拟本地文件系统,Web 应用程序可以浏览和访问其中的文件
非标准
该功能是非标准的。请尽量不要在生产环境中使用它:因为每个用户不一定会正常运行。它的实现可能存在很大的不兼容性,并且将来可能会改变行为。
File and Directory Entries API(文件和目录条目 API)用于模拟本地文件系统,Web 应用程序可以浏览和访问其中的文件。您可以开发在虚拟沙盒文件系统中读取、写入和创建文件或目录的应用程序。
因为这是一个非标准 API,其规范目前不在标准中,重要的是要记住并非所有浏览器都实现它,而那些实现它的浏览器可能只实现它的一小部分。请查看浏览器兼容性部分了解详细信息。
异步 API
异步 API 应该用于大多数操作,以防止文件系统访问在主线程上使用时阻塞整个浏览器。它包括以下接口:
FileSystem
表示一个文件系统。
FileSystemEntry
表示文件系统中单个条目的基本接口。这是由代表文件或目录的其他接口实现的。
FileSystemFileEntry
表示文件系统中的单个文件。
FileSystemDirectoryEntry
表示文件系统中的单个目录。
FileSystemDirectoryReader
通过调用 FileSystemDirectoryEntry.createReader()
来创建,此接口提供了让您读取目录内容的功能。
FileSystemFlags
定义一组值,在调用 文件和目录条目 API 中的某些方法时指定选项标志时使用这些值。
FileError
表示由异步文件系统调用生成的错误。
还有两个全局函数(目前不属于规范的一部分,仅由 Google Chrome 实现)。它们在 Window
对象上可用,并在 LocalFileSystem
中实现,它们是:requestFileSystem()
和 resolveLocalFileSystemURL()
。
其他接口
LocalFileSystem
使您可以访问沙盒文件系统。
LocalFileSystemSync
, LockedFile
提供具有所有必要锁的工具来处理给定文件。
Metadata
规范
规范 | 状态 | 备注 |
---|---|---|
File and Directory Entries API | 草稿 | 提议的 API 草案 |
此 API 没有正式的 W3C 或 WHATWG 规范。
浏览器兼容性
FileSystem
桌面浏览器兼容性
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | ≤371 | 181 | 未知 | 50 | 未知 | 14 webkit | 11.3 |
1. 通过 DOMFileSystem
支持。
2. Edge 仅在拖放时使用 DataTransferItem.webkitGetAsEntry()
方法,才支持该 API。它不能用于文件或文件夹选择器面板(例如,当您使用带有 HTMLInputElement.webkitdirectory
属性的 <input>
元素时)。
FileSystemSync
属性
桌面浏览器兼容性
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | ≤37 webkit | 18 webkit | 未知 | 不支持 | 未知 | 14 webkit | 6 webkit |