РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
515 of 1593 menu

Функция os.Lstat

Функция os.Lstat возвращает информацию о файле или директории по указанному пути. В отличие от функции os.Stat, которая переходит по символической ссылке и возвращает информацию о целевом файле, os.Lstat возвращает информацию о самой символической ссылке. В первый параметр функция принимает путь к файлу в виде строки. Она возвращает интерфейс os.FileInfo и ошибку.

Синтаксис

os.Lstat(path string) (os.FileInfo, error)

Пример

Давайте получим информацию о файле с помощью функции os.Lstat:

package main import ( "fmt" "os" ) func main() { info, err := os.Lstat("example.txt") if err != nil { fmt.Println("Error:", err) return } fmt.Println("File name:", info.Name()) fmt.Println("File size:", info.Size()) fmt.Println("Is directory:", info.IsDir()) fmt.Println("File mode:", info.Mode()) fmt.Println("Modification time:", info.ModTime()) }

Результат выполнения кода:

"File name: example.txt" "File size: 1024" "Is directory: false" "File mode: -rw-r--r--" "Modification time: 2026-09-04 12:34:56 +0000 UTC"

Пример

Давайте посмотрим разницу между os.Lstat и os.Stat при работе с символической ссылкой:

package main import ( "fmt" "os" ) func main() { // Создаем символическую ссылку err := os.Symlink("target.txt", "link.txt") if err != nil { fmt.Println("Error creating symlink:", err) return } // Получаем информацию о ссылке linkInfo, err := os.Lstat("link.txt") if err != nil { fmt.Println("Lstat error:", err) return } fmt.Println("Lstat: link name:", linkInfo.Name()) fmt.Println("Lstat: is symlink:", linkInfo.Mode()&os.ModeSymlink != 0) // Получаем информацию о целевом файле targetInfo, err := os.Stat("link.txt") if err != nil { fmt.Println("Stat error:", err) return } fmt.Println("Stat: target name:", targetInfo.Name()) fmt.Println("Stat: is symlink:", targetInfo.Mode()&os.ModeSymlink != 0) }

Результат выполнения кода:

"Lstat: link name: link.txt" "Lstat: is symlink: true" "Stat: target name: target.txt" "Stat: is symlink: false"

Пример

Давайте проверим, существует ли файл, с помощью os.Lstat:

package main import ( "fmt" "os" ) func main() { _, err := os.Lstat("nonexistent.txt") if os.IsNotExist(err) { fmt.Println("File does not exist") } else if err != nil { fmt.Println("Other error:", err) } else { fmt.Println("File exists") } }

Результат выполнения кода:

"File does not exist"

Смотрите также

  • функцию os.Stat,
    которая возвращает информацию о файле, переходя по символическим ссылкам
  • функцию os.Symlink,
    которая создает символическую ссылку
  • функцию os.Readlink,
    которая возвращает путь к целевому файлу символической ссылки
  • функцию os.SameFile,
    которая проверяет, указывают ли два объекта на один файл
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить