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 , 参数为 FileSystemFileEntry 或 FileSystemDirectoryEntry 。 |
true |
false |
路径不存在 | 创建文件或目录,调用 successCallback , 参数为 FileSystemFileEntry 或 FileSystemDirectoryEntry 。 |
true |
true |
路径存在 | 会调用 errorCallback ,参数为相应的错误,例如 FileError.PATH_EXISTS_ERR 。 |
true |
true |
路径不存在 | 创建文件或目录,调用 successCallback , 参数为 FileSystemFileEntry 或 FileSystemDirectoryEntry 。 |
[1] 当 create
为 false
时,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 不支持创建文件。该选项无效。