Использование возвращаемого значения os.Lstat в Go - PullRequest
0 голосов
/ 04 октября 2018

https://golang.org/pkg/os/#Lstat говорит:

func Lstat(name string) (FileInfo, error)

Lstat возвращает FileInfo, описывающую названный файл.Если файл является символической ссылкой, возвращаемое FileInfo описывает символическую ссылку.Lstat не пытается перейти по ссылке.Если есть ошибка, она будет иметь тип * PathError.

Однако возвращенный интерфейс os.FileInfo не делает доступной информацию о символических ссылках.Куда уходит эта информация?Должен ли я использовать платформо-зависимый метод Sys () в os.FileInfo?

1 Ответ

0 голосов
/ 05 октября 2018

Stat возвращает информацию о целевом файле, Lstat возвращает информацию о самой символической ссылке.

Вся информация содержится в битах режима файла.Вы можете использовать предопределенные константы в пакете os, чтобы проверить типы режимов, которые вас интересуют.

Например, если вы передадите fileInfo из os.Stat("/path/to/symlink") в следующий код, он будет НЕ говорят, что это символическая ссылка.Однако, если вы передадите возвращаемое значение os.Lstat, оно будет:

if fileInfo.Mode()&os.ModeSymlink != 0 {
    fmt.Println(fileInfo.Name(), "is a symlink")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...