FileSystemDirectoryEntry:removeRecursively() 方法

已弃用: 不再推荐使用此功能。尽管某些浏览器可能仍支持它,但它可能已从相关的 Web 标准中删除,或者正在被删除,或者仅出于兼容性目的而保留。避免使用它,并在可能的情况下更新现有代码;请参阅此页面底部的兼容性表以指导您的决策。请注意,此功能可能随时停止工作。

非标准: 此功能是非标准的,并且不在标准轨道上。请勿在面向 Web 的生产站点上使用它:它不会对每个用户都有效。实现之间也可能存在很大的不兼容性,并且行为将来可能会发生变化。

FileSystemDirectoryEntry 接口的方法removeRecursively()删除目录及其所有内容,分层迭代其整个子树中的后代文件和目录。

要删除单个文件或空目录,您还可以使用FileSystemEntry.remove()

语法

js
removeRecursively(successCallback)
removeRecursively(successCallback, errorCallback)

参数

successCallback

目录删除过程完成后要调用的函数。回调函数没有参数。

errorCallback 可选

如果在尝试删除目录子树时发生错误,则要调用的函数。接收一个FileError,其中包含发生的错误的描述作为输入。

返回值

无(undefined)。

异常

如果发生错误并且指定了errorCallback,则会使用单个参数调用它:一个FileError对象,其中包含错误的描述。 FileError.code指定发生了哪种类型的错误,如下所示

FileError.INVALID_MODIFICATION_ERR

尝试删除根目录;这是不允许的。

FileError.NO_MODIFICATION_ALLOWED_ERR

文件系统的状态不允许修改。

FileError.NOT_FOUND_ERR

FileSystemDirectoryEntry表示的目录不再存在。

FileError.NOT_READABLE_ERR

目录不可访问;也许它正在被另一个应用程序使用或在操作系统级别被锁定。

FileError.SECURITY_ERR

由于安全原因,无法删除目录。可能的原因包括

  • 目录和/或其内容可能不安全供 Web 应用程序访问。
  • 正在进行过多的文件系统调用。
  • 用户代理或操作系统提出的其他安全问题。

注意:如果您尝试删除包含一个或多个无法删除的文件的目录,或者在删除多个文件期间发生错误,则某些文件可能不会被删除。您应该提供errorCallback来监视和处理此问题,也许可以通过重试。

示例

js
directory.removeRecursively(
  () => {
    /* The directory was removed successfully */
  },
  () => {
    /* an error occurred while removing the directory */
  },
);

浏览器兼容性

BCD 表仅在浏览器中加载

另请参阅