创建目录时权限被拒绝
Permission denied when creating directory
所以我想在 $HOME
中创建一个目录,但是它说权限被拒绝,如何在 $HOME
中创建目录需要权限?
这是代码
let mut dir = home::home_dir().expect("Cannot get your home directory"); // Go to the home directory
dbg!(&dir);
dir.push("/.siriusmart");
if !dir.exists() { // Create a directory if it doesn't exist
fs::create_dir(&dir)?;
}
这是输出
[src/main.rs:122] &dir = "/home/siriusmart"
Error: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }
不要在目录名称中包含前导 /
。这被解释为替换从根开始的整个路径。
如果您将 dbg!
语句移动到 push
之后,那么您会看到目录是 /.siriusmart
而不是您预期的 /your/home/director/.siriusmart
。
那就这样吧:
dir.push(".siriusmart");
所以我想在 $HOME
中创建一个目录,但是它说权限被拒绝,如何在 $HOME
中创建目录需要权限?
这是代码
let mut dir = home::home_dir().expect("Cannot get your home directory"); // Go to the home directory
dbg!(&dir);
dir.push("/.siriusmart");
if !dir.exists() { // Create a directory if it doesn't exist
fs::create_dir(&dir)?;
}
这是输出
[src/main.rs:122] &dir = "/home/siriusmart"
Error: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }
不要在目录名称中包含前导 /
。这被解释为替换从根开始的整个路径。
如果您将 dbg!
语句移动到 push
之后,那么您会看到目录是 /.siriusmart
而不是您预期的 /your/home/director/.siriusmart
。
那就这样吧:
dir.push(".siriusmart");