Function std::fs::remove_dir_all
1.0.0 · source · pub fn remove_dir_all<P: AsRef<Path>>(path: P) -> Result<()>
Expand description
删除目录中的所有内容后,将在此路径中删除该目录。小心使用!
此函数不跟随符号链接,它会简单地删除符号链接本身。
特定于平台的行为
该函数目前对应于 Unix 上的 openat
、fdopendir
、unlinkat
和 lstat
函数 (10.10 和 REDOX 之前版本的 macOS 除外) 和 Windows 上的 CreateFileW
、GetFileInformationByHandleEx
、SetFileInformationByHandle
和 NtCreateFile
函数。
注意,这个 将来可能会改变。
在 10.10 和 REDOX 之前版本的 macOS 上,以及在 Miri 中针对任何目标运行时,此函数不受 time-of-check to time-of-use (TOCTOU) 竞争状态的保护,不应在安全敏感代码中使用在那些平台上。 所有其他平台都受到保护。
Errors
请参见 fs::remove_file
和 fs::remove_dir
。
如果 remove_dir
或 remove_file
在任何组成路径 (包括根路径) 上失败,则 remove_dir_all
将失败。
因此,您要删除的目录必须存在,这意味着此功能不是幂等的。
如果您的用例不需要验证删除,请考虑忽略该错误。
Examples
use std::fs;
fn main() -> std::io::Result<()> {
fs::remove_dir_all("/some/dir")?;
Ok(())
}
Run