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

Тип os.FileInfo

Тип os.FileInfo представляет собой интерфейс, который предоставляет информацию о файле или директории. Он возвращается функциями os.Stat, os.Lstat, а также методом File.Stat. Интерфейс содержит методы для получения имени файла, размера, режима доступа, времени последнего изменения и других свойств.

Методы интерфейса

type FileInfo interface { Name() string // имя файла Size() int64 // размер в байтах Mode() FileMode // права доступа ModTime() time.Time // время последнего изменения IsDir() bool // является ли директорией Sys() any // системные данные }

Пример

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

package main import ( "fmt" "os" "time" ) func main() { // Создаем тестовый файл os.WriteFile("test.txt", []byte("Hello, World!"), 0644) defer os.Remove("test.txt") // Получаем информацию о файле info, err := os.Stat("test.txt") if err != nil { fmt.Println(err) return } fmt.Println("Name:", info.Name()) fmt.Println("Size:", info.Size()) fmt.Println("IsDir:", info.IsDir()) fmt.Println("ModTime:", info.ModTime().Format(time.RFC3339)) }

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

"Name: test.txt" "Size: 13" "IsDir: false" "ModTime: 2024-01-01T12:00:00Z"

Пример

Давайте проверим, является ли путь директорией, с помощью метода IsDir:

package main import ( "fmt" "os" ) func main() { // Создаем тестовую директорию os.Mkdir("testdir", 0755) defer os.Remove("testdir") info, err := os.Stat("testdir") if err != nil { fmt.Println(err) return } if info.IsDir() { fmt.Println("testdir is a directory") } else { fmt.Println("testdir is not a directory") } }

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

"testdir is a directory"

Пример

Давайте получим права доступа к файлу с помощью метода Mode:

package main import ( "fmt" "os" ) func main() { // Создаем тестовый файл с определенными правами os.WriteFile("test.txt", []byte("Hello"), 0644) defer os.Remove("test.txt") info, err := os.Stat("test.txt") if err != nil { fmt.Println(err) return } mode := info.Mode() fmt.Println("File mode:", mode) fmt.Println("Is regular file:", mode.IsRegular()) fmt.Println("Permissions:", mode.Perm()) }

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

"File mode: -rw-r--r--" "Is regular file: true" "Permissions: -rw-r--r--"

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

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