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

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持71≤18 WebKit 250 不支持15 webkit 11.1

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持≤371181 未知50 未知14 webkit 11.3

1. 通过 DOMFileSystem 支持。

2. Edge 仅在拖放时使用 DataTransferItem.webkitGetAsEntry() 方法,才支持该 API。它不能用于文件或文件夹选择器面板(例如,当您使用带有 HTMLInputElement.webkitdirectory 属性的 <input> 元素时)。

FileSystemSync 属性

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持13 webkit ≤79 webkit 不支持 不支持15 webkit 6 webkit

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持≤37 webkit 18 webkit 未知 不支持 未知14 webkit 6 webkit

相关链接