gpt4 book ai didi

go - Go 中的文件权限掩码

转载 作者:IT王子 更新时间:2023-10-29 01:51:00 25 4
gpt4 key购买 nike

我最近在玩 Go 中的文件模式和权限,并在获取它时偶然发现了输出。

以下代码:

for _, file := range files {
fmt.Println(file.Mode())
}

产生输出:

drwx------
Lrwxr-xr-x
drwxr--r--
drwx------
drwx------
prw-r--r--
Srw-rw-rw-
Srw-rw-rw-
-rw-r--r--

我的问题是如何获得 0777 等数字的权限

这个答案中是否提供了类似于 python 的类似方法:How can I get a file's permission mask?

最佳答案

一旦你有了文件模式(使用 FileInfo.Mode() ),使用 FileMode.Perm()方法。这将返回 os.FileMode 类型的值其基础类型为 uint32

您正在寻找的格式(例如 0777)是以 8 为基数的。您可以使用例如fmt.Printf()使用动词 %o 以八进制格式(基数 8)打印数字。使用宽度 4 使其成为 4 位数字,并使用标志 0 使其填充 0。所以打印文件权限的格式字符串:"%04o"

所以像这样打印:

files, err := ioutil.ReadDir(".")
// Handle err

for _, file := range files {
fmt.Printf("%s %04o %s\n", file.Mode(), file.Mode().Perm(), file.Name())
}

示例输出:

-rw-rw-r-- 0664 play.go
drwxrwxr-x 0775 subplay

关于go - Go 中的文件权限掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41932480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com