func stringToInt(s string) int { i, err := strconv.Atoi(s) check(err) return i}os.FileMode(stringToInt("0777"))当不需要转换为 int 时(不删除前导零)通过直接设置权限:os.FileMode(0777)文件权限正确当前结果777777-r----x--x753753--wxrw---x500500-rwxrw-r--预期结果777-rwxrwxrwx753-r-xr-x-wx500-r-x------
1 回答
青春有我
TA贡献1784条经验 获得超8个赞
根据@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------
总之,根本不需要前导零。导致问题的是不正确的类型。
- 1 回答
- 0 关注
- 143 浏览
添加回答
举报
0/150
提交
取消