Функция fs.Stat
Функция fs.Stat возвращает интерфейс fs.FileInfo,
содержащий информацию о файле или директории по указанному пути.
В первый параметр она принимает путь к файлу или директории в виде строки.
Функция возвращает два значения: информацию о файле и ошибку.
Если файл не существует, возвращается ошибка fs.ErrNotExist.
Синтаксис
fs.Stat(path)
Пример
Давайте получим информацию о существующем файле:
package 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())
}
Результат выполнения кода:
"test.txt"
"5"
"false"
"-rw-r--r--"
"2026-09-04 12:00:00 +0000 UTC"
Пример
Давайте проверим, существует ли файл, с помощью обработки ошибки:
package 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")
}
Результат выполнения кода:
"File does not exist"
Пример
Давайте получим информацию о директории:
package 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())
}
Результат выполнения кода:
"testdir"
"0"
"true"
"drwxr-xr-x"
Смотрите также
-
функцию
os.Stat,
которая возвращает информацию о файле -
функцию
os.File.Stat,
которая возвращает информацию об открытом файле -
функцию
os.Lstat,
которая возвращает информацию о файле, не переходя по символическим ссылкам -
функцию
fs.FileInfo,
которая описывает интерфейс информации о файле