FileSystemDirectoryEntry: removeRecursively() 方法
已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。
非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。
FileSystemDirectoryEntry 接口的 removeRecursively() 方法会递归地删除目录及其所有内容,遍历其整个子树中的所有后代文件和目录。
要删除单个文件或空目录,您也可以使用 FileSystemEntry.remove()。
语法
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 来监视并处理这种情况,也许可以尝试重新删除。
示例
directory.removeRecursively(
() => {
/* The directory was removed successfully */
},
() => {
/* an error occurred while removing the directory */
},
);
浏览器兼容性
加载中…