Функция os.IsNotExist
Функция os.IsNotExist проверяет, указывает ли полученная ошибка на то,
что файл или директория не существуют. Она возвращает true,
если ошибка связана с отсутствием файла, и false в противном случае.
В качестве единственного параметра функция принимает ошибку,
возвращаемую операциями с файловой системой.
Синтаксис
os.IsNotExist(err)
Пример
Давайте проверим, вернет ли os.Stat ошибку отсутствия файла:
package main
import (
"fmt"
"os"
)
func main() {
_, err := os.Stat("nonexistent.txt")
if os.IsNotExist(err) {
fmt.Println("file does not exist")
}
}
Результат выполнения кода:
"file does not exist"
Пример
Давайте проверим, что ошибка отсутствия для директории также распознается:
package main
import (
"fmt"
"os"
)
func main() {
_, err := os.Stat("/tmp/missing_dir")
if os.IsNotExist(err) {
fmt.Println("directory does not exist")
}
}
Результат выполнения кода:
"directory does not exist"
Пример
Используем os.IsNotExist для обработки ошибок при чтении файла:
package main
import (
"fmt"
"os"
)
func main() {
data, err := os.ReadFile("config.txt")
if err != nil {
if os.IsNotExist(err) {
fmt.Println("config file is missing, using defaults")
} else {
fmt.Println("failed to read config:", err)
}
return
}
fmt.Printf("config loaded: %s", data)
}
Результат выполнения кода (если файл отсутствует):
"config file is missing, using defaults"
Смотрите также
-
функцию
os.IsExist,
которая проверяет, существует ли файл или директория -
функцию
os.IsPermission,
которая проверяет ошибку доступа к файлу -
функцию
os.Stat,
которая возвращает информацию о файле или директории -
функцию
os.ReadFile,
которая читает содержимое файла