我想知道是否有一种方法可以检查rust应用程序是否有权限在文件夹内写入?
我看到有一种方法可以通过阅读原始位权限来检查它,但这并不考虑用户或组。另一种方法可以是编写一个文件,看看它是否失败,但这听起来并不很优雅。
到目前为止我已经尝试过这个,但它似乎只适用于文件(?)
use std::fs::File;
fn main() {
let loc = "/var/log/myfolder";
// Check if able to write inside directory
let res = File::options()
.read(false)
.write(true)
.open(loc);
if res.is_ok() {
println!("No read permission");
} else {
println!("Read permission");
}
}
有没有更简单的方法可以检查文件夹是否具有写入权限,而无需尝试在其中创建文件?
1条答案
按热度按时间cpjpxq1n1#
您可以使用
fs::metadata
:在类Unix系统上,您可以使用
PermissionsExt
trait获得更具体的信息: