Функция 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,
которая проверяет, ссылаются ли два объекта на один файл