创建目录时拒绝权限



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