func stringToInt(s string) int {
i, err := strconv.Atoi(s)
check(err)
return i
}
os.FileMode(stringToInt("0777"))
通过直接设置权限,不需要转换为int(不删除前导零):
os.FileMode(0777)
文件权限正确
当前结果
777
777
-r----x--x
753
753
--wxrw---x
500
500
-rwxrw-r--
预期结果
777
-rwxrwxrwx
753
-r-xr-x-wx
500
-r-x------
答案 0 :(得分:0)
基于@AdamSmith和@JamesHenstridge的评论,以下内容解决了这个问题:
mode, _ := strconv.ParseInt(fileAttributes["mode"], 8, 32)
0777
511
-rwxrwxrwx
0753
491
-r-xr-x-wx
0500
320
-r-x------
然而,当删除前导零时,结果完全相同:
777
511
-rwxrwxrwx
753
491
-r-xr-x-wx
500
320
-r-x------
总之,根本不需要前导零。导致问题的是不正确的类型。