FileSystemDirectoryEntry: removeRecursively() 方法

已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。

非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。

FileSystemDirectoryEntry 接口的 removeRecursively() 方法会递归地删除目录及其所有内容,遍历其整个子树中的所有后代文件和目录。

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

语法

js
removeRecursively(successCallback)
removeRecursively(successCallback, errorCallback)

参数

successCallback

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

errorCallback 可选

在尝试删除目录子树时发生错误时调用的函数。接收一个 DOMException 作为输入,该异常描述了发生的错误。

返回值

无(undefined)。

异常

如果发生错误并且指定了 errorCallback,则会调用它,并传入一个参数:一个描述错误的 DOMException 对象。 DOMException.code 指定了发生的错误类型,如下所示:

DOMException.INVALID_MODIFICATION_ERR

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

DOMException.NO_MODIFICATION_ALLOWED_ERR

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

DOMException.NOT_FOUND_ERR

FileSystemDirectoryEntry 表示的目录已不存在。

DOMException.NOT_READABLE_ERR

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

DOMException.SECURITY_ERR

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

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

注意: 如果您尝试删除一个包含一个或多个无法删除的文件,或者在删除多个文件过程中发生错误,某些文件可能不会被删除。您应该提供一个 errorCallback 来监视并处理这种情况,也许可以尝试重新删除。

示例

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

浏览器兼容性

另见