我想要一个string
文件的权限表示。
这是我想做的事情:
fileInfo, err := os.Lstat(path)
fileMode := fileInfo.Mode()
// fileMode.String() gives dturwxrwxrwx or -rwxrwxrwx
// which i do not want because the size is not always the same
unixPerms := fileMode & os.ModePerm
两种情况下,我都得到
-rwxrwxrwx
,这与我要寻找的很接近。但是,返回的对象的类型为
os.FileMode
。然后如何将其转换为string
? 最佳答案
您可以将类型(os.FileMode
)中的任何一个变量作为fmt软件包中Sprintf
方法的参数传递。
利用此方法可以将您的类型转换为字符串,然后可以在程序的其余部分中将其用作字符串。
用法示例如下:
package main
import (
"fmt"
"os"
)
func main() {
fileInfo, err := os.Lstat(path)
if err != nil {
// catch err
}
fileMode := fileInfo.Mode()
// fileMode.String() gives dturwxrwxrwx or -rwxrwxrwx
// which i do not want because the size is not always the same
unixPerms := fileMode & os.ModePerm
permString := fmt.Sprintf("%v", unixPerms)
fmt.Println(permString)
}