我希望文件的权限表示形式为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
?
答案 0 :(得分:1)
您可以将fmt包中的变量之一(os.FileMode
)传递为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)
}
答案 1 :(得分:0)
fileInfo.Mode()。Perm()。String()