Function std::fs::remove_dir_all

1.0.0 · source ·
pub fn remove_dir_all<P: AsRef<Path>>(path: P) -> Result<()>
Expand description

删除目录中的所有内容后,将在此路径中删除该目录。小心使用!

此函数不跟随符号链接,它会简单地删除符号链接本身。

特定于平台的行为

该函数目前对应于 Unix 上的 openatfdopendirunlinkatlstat 函数 (10.10 和 REDOX 之前版本的 macOS 除外) 和 Windows 上的 CreateFileWGetFileInformationByHandleExSetFileInformationByHandleNtCreateFile 函数。

注意,这个 将来可能会改变

在 10.10 和 REDOX 之前版本的 macOS 上,以及在 Miri 中针对任何目标运行时,此函数不受 time-of-check to time-of-use (TOCTOU) 竞争状态的保护,不应在安全敏感代码中使用在那些平台上。 所有其他平台都受到保护。

Errors

请参见 fs::remove_filefs::remove_dir

如果 remove_dirremove_file 在任何组成路径 (包括根路径) 上失败,则 remove_dir_all 将失败。 因此,您要删除的目录必须存在,这意味着此功能不是幂等的。

如果您的用例不需要验证删除,请考虑忽略该错误。

Examples

use std::fs;

fn main() -> std::io::Result<()> {
    fs::remove_dir_all("/some/dir")?;
    Ok(())
}
Run