Функция fs.Stat

Функция fs.Stat возвращает интерфейс fs.FileInfo, содержащий информацию о файле или директории по указанному пути. В первый параметр она принимает путь к файлу или директории в виде строки. Функция возвращает два значения: информацию о файле и ошибку. Если файл не существует, возвращается ошибка fs.ErrNotExist.

Синтаксис

gofs.Stat(path)

Пример

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

gopackage main

import (
  "fmt"
  "io/fs"
  "os"
)

func main() {
  // Создаем тестовый файл
  os.WriteFile("test.txt", []byte("hello"), 0644)

  info, err := fs.Stat(os.DirFS("."), "test.txt")
  if err != nil {
    fmt.Println(err)
    return
  }

  fmt.Println(info.Name())
  fmt.Println(info.Size())
  fmt.Println(info.IsDir())
  fmt.Println(info.Mode())
  fmt.Println(info.ModTime())
}

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

go"test.txt"
"5"
"false"
"-rw-r--r--"
"2026-09-04 12:00:00 +0000 UTC"

Пример

Давайте проверим, существует ли файл, с помощью обработки ошибки:

gopackage main

import (
  "fmt"
  "io/fs"
  "os"
)

func main() {
  _, err := fs.Stat(os.DirFS("."), "nonexistent.txt")
  if err != nil {
    if fs.IsNotExist(err) {
      fmt.Println("File does not exist")
    } else {
      fmt.Println("Other error:", err)
    }
    return
  }

  fmt.Println("File exists")
}

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

go"File does not exist"

Пример

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

gopackage main

import (
  "fmt"
  "io/fs"
  "os"
)

func main() {
  // Создаем тестовую директорию
  os.Mkdir("testdir", 0755)

  info, err := fs.Stat(os.DirFS("."), "testdir")
  if err != nil {
    fmt.Println(err)
    return
  }

  fmt.Println(info.Name())
  fmt.Println(info.Size())
  fmt.Println(info.IsDir())
  fmt.Println(info.Mode())
}

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

go"testdir"
"0"
"true"
"drwxr-xr-x"

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

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