DirectoryEntrySync
非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。
已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。
DirectoryEntrySync 接口表示文件系统中的一个目录。它包含用于在目录中创建、读取、查找和递归删除文件的方法。
警告:此接口已弃用,不再是标准规范的一部分。请勿再使用它。请改用 File and Directory Entries API。
基本概念
如果您想创建子目录,您必须按顺序创建每个子目录。如果您尝试使用包含尚不存在的父目录的完整路径创建目录,您将收到错误。因此,请在创建父目录后通过递归添加新路径来创建层次结构。
示例
getFile() 方法返回一个 FileEntrySync,它表示文件系统中的一个文件。以下代码在根目录中创建一个名为 logs.txt 的空文件。
const fileEntry = fs.root.getFile("logs.txt", { create: true });
getDirectory() 方法返回一个 DirectoryEntrySync,它表示文件系统中的一个文件。以下代码在根目录中创建一个名为 project_dir 的新目录。
const dirEntry = fs.root.getDirectory("project_dir", { create: true });
方法概述
实例方法
createReader()
创建一个新的 DirectoryReaderSync 以从此目录读取条目。
语法
createReader()
参数
无。
返回值
DirectoryReaderSync-
表示文件系统中的一个目录。
异常
此方法可能会引发具有以下代码的 DOMException
| 异常 | 描述 |
|---|---|
NOT_FOUND_ERR |
目录不存在。 |
SECURITY_ERR |
浏览器确定查找元数据不安全。[待办:解释原因] |
getFile()
根据您设置 options 参数的方式,该方法会创建文件或查找现有文件。
语法
getFile(path)
getFile(path, options)
参数
路径-
可以是绝对路径,也可以是从目录到要查找或创建的文件(或目录)的相对路径。您无法创建其直接父目录尚不存在的文件(或目录)。请先创建父目录。
options-
(可选) 描述方法行为的对象字面量。如果文件不存在,则会创建它。
| 对象字面量 | 条件 | 结果 |
|---|---|---|
create: trueexclusive: true |
路径已存在 | 将抛出错误。 |
create: trueexclusive: false |
路径不存在且未发生其他错误 | 将创建一个文件。如果文件已存在,则不会抛出错误。 |
create: false( exclusive 被忽略) |
路径存在 | 将返回该文件。 |
create: false( exclusive 被忽略) |
路径不存在 | 将抛出错误。 |
create: false( exclusive 被忽略) |
路径存在,但它是目录 | 将抛出错误。 |
返回值
FileEntrySync-
表示文件系统中的一个文件。
异常
此方法可能会引发具有以下代码的 DOMException
| 异常 | 描述 |
|---|---|
ENCODING_ERR |
提供的路径无效。 |
NOT_FOUND_ERR |
路径结构正确,但指向一个不存在的资源。 |
NO_MODIFICATION_ALLOWED_ERR |
这是一个权限问题。目标目录或文件不可写入。 |
PATH_EXISTS_ERR |
文件已存在。您无法创建具有相同路径的另一个文件。 |
QUOTA_EXCEEDED_ERROR |
该操作将导致应用程序超出其存储配额。 |
SECURITY_ERR |
应用程序无权访问路径所引用的元素。[待办:解释原因] |
TYPE_MISMATCH_ERR |
提供的路径存在,但它不是一个目录。 |
getDirectory()
创建或查找目录。此方法类似于将 DirectoryEntrySync 传入的 getFile()。
语法
getDirectory(path)
getDirectory(path, options)
参数
路径-
可以是绝对路径,也可以是从目录到要查找或创建的文件(或目录)的相对路径。您无法创建其直接父目录尚不存在的文件(或目录)。请先创建父目录。
options-
(可选) 描述方法行为的对象字面量,如果文件不存在。
| 对象字面量 | 条件 | 结果 |
|---|---|---|
create: trueexclusive: true |
路径已存在 | 将抛出错误。 |
create: trueexclusive: false |
路径不存在且未发生其他错误 | 将创建一个目录。如果文件已存在,则不会抛出错误。 |
create: false( exclusive 被忽略) |
路径存在 | 将返回该目录。 |
create: false( exclusive 被忽略) |
路径不存在 | 将抛出错误。 |
create: false( exclusive 被忽略) |
路径存在,但它是目录 | 将抛出错误。 |
返回值
DirectoryEntrySync-
表示文件系统中的一个目录。
异常
此方法可能会引发具有以下代码的 DOMException
| 异常 | 描述 |
|---|---|
ENCODING_ERR |
提供的路径无效。 |
NOT_FOUND_ERR |
路径结构正确,但指向一个不存在的资源。 |
NO_MODIFICATION_ALLOWED_ERR |
这是一个权限问题。目标目录或文件不可写入。 |
PATH_EXISTS_ERR |
文件已存在。您无法创建具有相同路径的另一个文件。 |
QUOTA_EXCEEDED_ERROR |
该操作将导致应用程序超出其存储配额。 |
SECURITY_ERR |
应用程序无权访问路径所引用的元素。[待办:解释原因] |
TYPE_MISMATCH_ERR |
提供的路径存在,但它不是一个目录。 |
removeRecursively()
删除目录及其所有内容。您无法删除文件系统的根目录。
如果您删除一个包含无法删除的文件,或者在删除过程中发生错误,则部分内容可能不会被删除。通过错误回调捕获这些情况并重试删除。
语法
removeRecursively()
参数
无。
返回值
undefined
异常
此方法可能会引发具有以下代码的 DOMException
| 异常 | 描述 |
|---|---|
NOT_FOUND_ERR |
目标目录不存在。 |
INVALID_STATE_ERR |
由于某种原因(非删除),此目录不再有效。 [待办:详细解释] |
NO_MODIFICATION_ALLOWED_ERR |
以下之一不可写入:目录本身、其父目录以及目录中的部分内容。 |
SECURITY_ERR |
应用程序无权访问目标目录、其父目录或其中的部分内容。 |
规范
此功能不属于任何当前规范。它已不再是成为标准的轨道。请改用 File and Directory Entries API。
浏览器兼容性
加载中…