DirectoryEntrySync
非标准:此功能是非标准的,并且不在标准化轨道上。不要在面向 Web 的生产环境中使用它:它不会对所有用户起作用。实现之间也可能存在很大的不兼容性,并且行为将来可能会发生变化。
已弃用:此功能不再推荐使用。虽然一些浏览器可能仍然支持它,但它可能已经从相关的 Web 标准中删除,或者正在被删除,或者仅出于兼容性目的保留。避免使用它,并尽可能更新现有的代码;请参阅本页底部的兼容性表格,以指导您的决策。请注意,此功能可能随时停止工作。
DirectoryEntrySync
接口表示文件系统中的一个目录。它包括用于创建、读取、查找和递归删除目录中文件的方法。
警告:此接口已弃用,并且不再位于标准轨道上。请勿再使用它。 使用文件和目录条目 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)
参数
对象字面量 | 条件 | 结果 |
---|---|---|
create: true exclusive: true |
路径已存在 | 抛出错误。 |
create: true exclusive: 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()
创建或查找目录。该方法类似于 getFile()
,只是传递了 DirectoryEntrySync。
语法
getDirectory(path)
getDirectory(path, options)
参数
对象字面量 | 条件 | 结果 |
---|---|---|
create: true exclusive: true |
路径已存在 | 抛出错误。 |
create: true exclusive: 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 |
应用程序无权访问目标目录、其父目录或部分内容。 |
规范
此功能不是任何当前规范的一部分。它不再在成为标准的轨道上。使用文件和目录条目 API 替代。
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。