golang конвертирует os.ModePerm в строку - PullRequest
0 голосов
/ 03 июня 2019

Я хотел бы иметь в качестве 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?

Ответы [ 2 ]

1 голос
/ 04 июня 2019

В качестве аргумента для метода Sprintf из пакета fmt можно передать любую из ваших переменных, типа (os.FileMode).

Использование этого метода преобразует ваш тип в строку, которую затем можно использовать в качестве строки в оставшейся части вашей программы.

Пример использования ниже:

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)
}
0 голосов
/ 04 июня 2019

fileInfo.Mode (). Пермь (). String ()

https://golang.org/pkg/os/#FileMode.Perm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...