非标
此特征是非标准的,且不在标准轨道中。不要在面向 Web 的生产站点中使用它:它不适用于每个用户。实现之间可能存在大的不兼容性,且行为将来可能改变。
DirectoryEntrySync
接口在
文件系统 API
represents a directory in a file system. It includes methods for creating, reading, looking up, and recursively removing files in a directory.
This interface has been abandonned: it was on a standard track and it proves not a good idea. Do not use it anymore.
This document was last updated on March 2, 2012 and follows the W3C Specifications (Working Draft) drafted on April 19, 2011.
This specification is pretty much abandoned, having failed to reach any substantial traction.
If you want to create subdirectories, you have to create each child directory in sequence. If you try to create a directory using a full path that includes parent directories that do not exist yet, you get an error. So create the hierarchy by recursively adding a new path after creating the parent directory.
getFile()
方法返回
FileEntrySync
, which represents a file in the file system. The following creates an empty file called
seekrits.txt
in the root directory.
var fileEntry = fs.root.getFile('seekrits.txt', {create: true});
getDirectory()
方法返回
DirectoryEntrySync
, which represents a file in the file system. The following creates a new directory called
superseekrit
in the root directory.
var dirEntry = fs.root.getDirectory('superseekrit', {create: true});
DirectoryReaderSync
createReader
() raises (
FileException
);
|
FileEntrySync
getFile
(in DOMString
path
, in optional Flags
选项
) raises (
FileException
);
|
DirectoryEntrySync
getDirectory
(in DOMString path, in optional Flags
选项
) raises (
FileException
);
|
void
removeRecursively
() raises (
FileException
);
|
创建新的
DirectoryReaderSync
to read entries from this directory.
DirectoryReaderSync createReader ( ) raises (FileException);
DirectoryReaderSync
Represents a directory in a file system.
None
This method can raise a FileException with the following codes:
| 异常 | 描述 |
|---|---|
NOT_FOUND_ERR
|
The directory does not exist. |
SECURITY_ERR
|
The browser determined that it was not safe to look up the metadata. [ todo: Explain why ] |
Depending on how you've set the
选项
parameter, the method either creates a file or looks up an existing file.
void getFile ( in DOMString path, in optional Flags options ) raises (FileException);
Either an absolute path or a relative path from the directory to the file to be looked up or created. You cannot create a file whose immediate parent does not exist. Create the parent directory first.
An object literal describing the behavior of the method. If the file does not exist, it is created.
| Object literal | 条件 | 结果 |
|---|---|---|
create: true
exclusive: true
|
Path already exists | An error is thrown. |
create: true
exclusive: false
|
Path doesn't exist and no other error occurs | A file is created. If a file already exists, no error is thrown. |
create: false
(
exclusive
is ignored)
|
Path exists | The file is returned. |
create: false
(
exclusive
is ignored)
|
Path doesn't exist | An error is thrown. |
create: false
(
exclusive
is ignored)
|
Path exists, but is a directory | An error is thrown. |
FileEntrySync
Represents a file in a file system.
This method can raise a FileException with the following codes:
| 异常 | 描述 |
|---|---|
ENCODING_ERR
|
The path supplied is invalid. |
NOT_FOUND_ERR
|
The path was structurally correct, but refers to a resource that does not exist. |
NO_MODIFICATION_ALLOWED_ERR
|
This is a permission issue. The target directory or file is not writable. |
PATH_EXISTS_ERR
|
The file already exists. You cannot create another one with the same path. |
QUOTA_EXCEEDED_ERROR
|
The operation would cause the application to exceed its storage quota. |
SECURITY_ERR
|
The application does not have permission to access the element referred to by path. [ todo: Explain why ] |
TYPE_MISMATCH_ERR
|
The path supplied exists, but it is not a directory. |
Creates or looks up a directory. The method is similar to
getFile()
with DirectoryEntrySync being passed.
void getDirectory ( in DOMString path, in optional Flags options ) raises (FileException);
Either an absolute path or a relative path from the directory to the file to be looked up or created. You cannot create a file whose immediate parent does not exist. Create the parent directory first.
An object literal describing the behavior of the method if the file does not exist.
| Object literal | 条件 | 结果 |
|---|---|---|
create: true
exclusive: true
|
Path already exists | An error is thrown. |
create: true
exclusive: false
|
Path doesn't exist and no other error occurs | A directory is created. If a file already exists, no error is thrown. |
create: false
(
exclusive
is ignored)
|
Path exists | The directory is returned. |
create: false
(
exclusive
is ignored)
|
Path doesn't exist | An error is thrown. |
create: false
(
exclusive
is ignored)
|
Path exists, but is a directory | An error is thrown. |
DirectoryEntrySync
Represents a directory in a file system.
This method can raise a FileException with the following codes:
| 异常 | 描述 |
|---|---|
ENCODING_ERR
|
The path supplied is invalid. |
NOT_FOUND_ERR
|
The path was structurally correct, but refers to a resource that does not exist. |
NO_MODIFICATION_ALLOWED_ERR
|
This is a permission issue. The target directory or file is not writable. |
PATH_EXISTS_ERR
|
The file already exists. You cannot create another one with the same path. |
QUOTA_EXCEEDED_ERROR
|
The operation would cause the application to exceed its storage quota. |
SECURITY_ERR
|
The application does not have permission to access the element referred to by path. [ todo: Explain why ] |
TYPE_MISMATCH_ERR
|
The path supplied exists, but it is not a directory. |
Deletes a directory and all of its contents. You cannot delete the root directory of a file system.
If you delete a directory that contains a file that cannot be removed or if an error occurs while the deletion is in progress, some of the contents might not be deleted. Catch these cases with error callbacks and retry the deletion.
void removeRecursively ( ) raises (FileException);
None
void
This method can raise a FileException with the following codes:
| 异常 | 描述 |
|---|---|
NOT_FOUND_ERR
|
The target directory does not exist. |
INVALID_STATE_ERR
|
This directory is not longer valid for some reason other than being deleted. [todo: Explain more ] |
NO_MODIFICATION_ALLOWED_ERR
|
One of the following is not writable: the directory, its parent directory, and some of the content in the directory. |
SECURITY_ERR
|
The application does not have permission to access the target directory, its parent, or some of its contents. |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
DirectoryEntrySync
非标
|
Chrome
13
Prefixed
|
Edge
79
Prefixed
|
Firefox 不支持 No | IE 不支持 No | Opera 不支持 No | Safari 不支持 No |
WebView Android
37
Prefixed
|
Chrome Android
18
Prefixed
|
Firefox Android 不支持 No | Opera Android 不支持 No | Safari iOS 不支持 No |
Samsung Internet Android
1.0
Prefixed
|
完整支持
不支持
非标。预期跨浏览器支持较差。
要求使用供应商前缀或不同名称。
规范: File API: Directories and System Specification WD
参考: 文件系统 API
介绍: Basic Concepts About the File System API
DirectoryEntrySync
FileError
FileException
FileHandle
FileRequest
FileSystem
FileSystemDirectoryEntry
FileSystemDirectoryEntrySync
FileSystemDirectoryReader
FileSystemDirectoryReaderSync
FileSystemEntry
FileSystemEntrySync
FileSystemFileEntry
FileSystemFileEntrySync
FileSystemFlags
FileSystemSync
HTMLInputElement
LocalFileSystem
LocalFileSystemSync
LockedFile
元数据
Window.requestFileSystem()
Window.resolveLocalFileSystemURL()
WorkerGlobalScope.requestFileSystemSync()