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

Функция os.Stat

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

Синтаксис

info, err := os.Stat(path)

Пример

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

package main import ( "fmt" "os" ) func main() { info, err := os.Stat("example.txt") if err != nil { fmt.Println("Error:", err) return } fmt.Println("File size:", info.Size()) }

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

"File size: 1024"

Пример

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

package main import ( "fmt" "os" ) func main() { info, err := os.Stat("/tmp") if err != nil { fmt.Println("Error:", err) return } if info.IsDir() { fmt.Println("This is a directory") } else { fmt.Println("This is a file") } }

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

"This is a directory"

Пример

Давайте обработаем случай, когда файл не существует:

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

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

"File does not exist"

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

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