gpt4 book ai didi

rust - 如何删除我无权在 Rust 中访问的目录?

转载 作者:行者123 更新时间:2023-11-29 07:59:25 24 4
gpt4 key购买 nike

如何在 Rust 中递归删除目录,同时删除具有 000 Unix 权限的空目录?这些权限读作“任何用户都不允许读取、写入或执行”。

我之前创建的目录是这样的:

mkdir -p dir/trap
chmod 000 dir/trap

我试过这个方法:

std::fs::remove_dir_all("dir").unwrap();

然而,它失败并显示“权限被拒绝”。是否有任何其他解决方案仍然删除此类目录,如 rm -rf 会?

最佳答案

问题是 remove_dir_all() 首先遍历目录的内容以删除可能存在的任何文件或子目录。并且您没有读取该目录的权限,因此出现错误。

你可以调用:

std::fs::remove_dir("dir").unwrap();

它不会尝试遍历目录,而是假设它已经是空的,如果不是则失败。

如果你想删除一个非空的、000 模式的目录,你必须先将权限更改回一个合理的值,然后你可以调用 remove_dir_all() 安全地。

关于rust - 如何删除我无权在 Rust 中访问的目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53248086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com