FileSystemFlags - 定义了一组文件和目录条目 API 使用的字典

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

非标准
该功能是非标准的。请尽量不要在生产环境中使用它:因为每个用户不一定会正常运行。它的实现可能存在很大的不兼容性,并且将来可能会改变行为。

FileSystemFlags 字典定义了一组值,这些值在调用文件和目录条目 API 中的某些方法中,需要指定选项标志时使用。接受该类型的 options 参数的方法可以将这些标志中的零个或多个指定为对象中的字段,如下所示:

dataDirectoryEntry.getDirectory("Workspace", { create: true }, function(entry) {
});

在这里,我们看到设置了 create 属性,其值为 true ,表示如果目录尚未存在,则应该创建该目录。

请注意,当在 Web 内容范围内使用时,这些选项标志目前没有任何有用的含义,因为安全预防措施会阻止创建新文件或替换现有文件。

属性

create 可选

如果该属性为 true,并且请求的文件或目录不存在,则用户代理应创建它。默认为 false。父目录必须已存在。

exclusive 可选

如果是 true,并且 create 选项也是 true,则在发出调用之前该文件不能存在。相反,文件必须可以在调用时新创建。默认为 false

值和结果

下表描述了这些标志的每种可能组合的结果,具体取决于目标文件或目录路径是否已存在。

create exclusive 文件/目录条件 结果
false n/a[1] 路径存在并匹配所需的类型(取决于调用的函数是 getFile() 还是 getDirectory() 会调用 successCallback,如果是调用了 getFile() 则参数为 FileSystemFileEntry,如果是调用了 getDirectory() 则参数为 FileSystemDirectoryEntry
false n/a[1] 路径存在但与所需类型不匹配 会调用 errorCallback 并附上相应的错误代码(如果提供了回调的话)。
true false 路径存在 删除现有文件或目录并替换为新文件或目录,调用 successCallback, 参数为 FileSystemFileEntryFileSystemDirectoryEntry
true false 路径不存在 创建文件或目录,调用 successCallback, 参数为 FileSystemFileEntryFileSystemDirectoryEntry
true true 路径存在 会调用 errorCallback ,参数为相应的错误,例如 FileError.PATH_EXISTS_ERR
true true 路径不存在 创建文件或目录,调用 successCallback, 参数为 FileSystemFileEntryFileSystemDirectoryEntry

[1] 当 createfalse 时,exclusive 的值是无关紧要的,并且被忽略掉。

规范

规范 状态 备注
File and Directory Entries API
FileSystemFlags 的定义
编者的草案 初始规范。

该 API 没有正式的 W3C 或 WHATWG 规范。

桌面浏览器兼容性

特性 Chrome Edge Firefox Internet Explorer Opera Safari
基础支持 13 webkit 未知 50 不支持 不支持 不支持
create 13 webkit 未知 501 不支持 不支持 不支持
exclusive 13 webkit 未知 501 不支持 不支持 不支持

移动浏览器兼容性

特性 Android Chrome for Android Edge mobile Firefox for Android IE mobile Opera Android iOS Safari
基础支持 支持 webkit 支持 webkit 未知 50 未知 不支持 不支持
create 支持 webkit 支持 webkit 未知 501 未知 不支持 不支持
exclusive 支持 webkit 支持 webkit 未知 501 未知 不支持 不支持

1. 出于安全原因,Firefox 不支持创建文件。该选项无效。

相关链接