我想要一个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)
}

10-06 12:34