创建目录时权限被拒绝

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");