FileSystemDirectoryEntry - Web API 接口参考 编辑
非标准
该特性是非标准的,请尽量不要在生产环境中使用它!
文件和目录条目 API 的 FileSystemDirectoryEntry
接口表示文件系统中的目录。它提供了方法,使其能够访问和操作目录中的文件,以及访问目录中的条目。
由于这是个非标准的 API,它的规范当前并没有在标准进程中,重要的是要记住,并不是所有浏览器都实现了他,并且实现它的浏览器可能仅仅实现了一小部分。更多细节请查看 Browser compatibility 。
基本概念
你可以通过调用 getDirectory()
创建新的目录。如果你打算创建子目录,按需创建每个子目录。如果你尝试使用完整路径创建目录,包含不存在的父目录,会返回错误。所以需要在创建父目录之后,递归添加新的路径来创建层次。
示例
下面的代码中,我们创建了一个叫做 "Documents" 的目录。
// Taking care of the browser-specific prefixes.
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
window.directoryEntry = window.directoryEntry || window.webkitDirectoryEntry;
...
function onFs(fs){
fs.root.getDirectory('Documents', {create:true}, function(directoryEntry){
//directoryEntry.isFile === false
//directoryEntry.isDirectory === true
//directoryEntry.name === 'Documents'
//directoryEntry.fullPath === '/Documents'
}, onError);
}
// Opening a file system with temporary storage
window.requestFileSystem(TEMPORARY, 1024*1024 /*1MB*/, onFs, onError);
属性
这个接口没有自己的属性,但是从它的父接口 FileSystemEntry
继承了属性。
方法
这个接口从它的父接口 FileSystemEntry
继承了方法。
createReader()
- 创建
FileSystemDirectoryReader
对象,它可以用于服务目录中的条目。 getDirectory()
- 返回
FileSystemDirectoryEntry
对象,表示位于给定路径的目录,相对于方法调用处的目录。 getFile()
- 返回
FileSystemFileEntry
对象,表示在目录层次中的一个文件,提供相对于方法调用处目录的路径。
废弃的方法
removeRecursively()
- 删除目录和所有内容,包含子目录的内容。它已经从规范中移除。
规范
Specification | Status | Comment |
---|---|---|
File and Directory Entries API | Draft | Draft of proposed API |
这个 API 没有官方的 W3C 或者 WHATWG 规范。
浏览器兼容性
We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Microsoft Edge | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|---|
Basic support | 13 webkit | (Yes) | 50 (50)[2] | 未实现 | 未实现[3] | 未实现 | 未实现 |
removeRecursively() | 13 webkit | ? | 未实现[1] | 未实现 | 未实现 | 未实现 | 未实现 |
getFile() and getDirectory() | 13 webkit | ? | 50 (50)[2] | 未实现 | 未实现 | 未实现 | 未实现 |
Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | 未实现 | 0.16 webkit | (Yes) | 50 (50)[2] | 未实现 | 未实现 | 未实现 |
removeRecursively() | 未实现 | 0.16 webkit | ? | 未实现[1] | 未实现 | 未实现 | 未实现 |
getFile() and getDirectory() | 未实现 | 0.16 webkit | ? | 50 (50)[2] | 未实现 | 未实现 | 未实现 |
[1] 虽然 removeRecursively()
方法存在于 Firefox 50,它所做的所有事情就是使用 NS_ERROR_DOM_SECURITY_ERR
调用错误回调。它已经从 Firefox 52 中移除了,并且也从规范中移除。
[2] 在 Firefox 中,错误回调的参数是 DOMException
,而不是 FileError
对象。
[3] Microsoft Edge 在 WebKitEntry
接口中实现了这个接口的功能,它就是 FileSystemEntry
。
另见
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论