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

Метод os.File.Stat

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

Синтаксис

func (f *os.File) Stat() (os.FileInfo, error)

Пример

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

package main import ( "fmt" "os" ) func main() { file, err := os.Open("example.txt") if err != nil { fmt.Println("Error opening file:", err) return } defer file.Close() info, err := file.Stat() if err != nil { fmt.Println("Error getting file info:", err) return } fmt.Println("File name:", info.Name()) fmt.Println("File size:", info.Size()) fmt.Println("File mode:", info.Mode()) fmt.Println("Is directory:", info.IsDir()) fmt.Println("Mod time:", info.ModTime()) }

Результат выполнения кода (значения могут отличаться):

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

Пример

Метод Stat также может использоваться для проверки существования файла. Если файл не существует, будет возвращена ошибка с типом *fs.PathError:

package main import ( "fmt" "os" ) func main() { file, err := os.Open("nonexistent.txt") if err != nil { fmt.Println("Error opening file:", err) return } defer file.Close() info, err := file.Stat() if err != nil { fmt.Println("Error getting file info:", err) return } fmt.Println("File info:", info) }

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

"Error opening file: open nonexistent.txt: no such file or directory"

Пример

Получим информацию о файле и проверим, является ли он директорией:

package main import ( "fmt" "os" ) func main() { file, err := os.Open(".") if err != nil { fmt.Println("Error opening directory:", err) return } defer file.Close() info, err := file.Stat() if err != nil { fmt.Println("Error getting directory info:", err) return } if info.IsDir() { fmt.Println("This is a directory") } else { fmt.Println("This is a regular file") } fmt.Printf("Permissions: %v\n", info.Mode().Perm()) }

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

"This is a directory" "Permissions: drwxr-xr-x"

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

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