所以我想在$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");