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

Функция os.IsPermission

Функция os.IsPermission проверяет, является ли переданная ошибка ошибкой доступа (permission denied). Она возвращает true, если ошибка сигнализирует о том, что у программы недостаточно прав для выполнения операции с файлом или директорией. В противном случае возвращается false. Функция принимает один параметр - ошибку error, которую вернула одна из функций пакета os при работе с файловой системой.

Синтаксис

os.IsPermission(err)

Пример

Попробуем открыть файл для записи, на который у нас нет прав, и проверить ошибку с помощью os.IsPermission:

package main import ( "fmt" "os" ) func main() { file, err := os.OpenFile("/root/secret.txt", os.O_WRONLY, 0644) if err != nil { if os.IsPermission(err) { fmt.Println("Permission denied") } else { fmt.Println("Other error:", err) } return } defer file.Close() fmt.Println("File opened successfully") }

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

"Permission denied"

Пример

Проверим ошибку, возникшую при попытке записи в файл в директории только для чтения:

package main import ( "fmt" "os" ) func main() { err := os.WriteFile("/readonly-dir/file.txt", []byte("data"), 0644) if err != nil { if os.IsPermission(err) { fmt.Println("Write operation failed due to permission") } else { fmt.Println("Other error:", err) } } else { fmt.Println("File written successfully") } }

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

"Write operation failed due to permission"

Пример

Функция os.IsPermission возвращает false, если ошибка не связана с правами доступа, например, при попытке открыть несуществующий файл:

package main import ( "fmt" "os" ) func main() { _, err := os.Open("nonexistent.txt") if err != nil { if os.IsPermission(err) { fmt.Println("Permission error") } else { fmt.Println("Other error:", err) } } }

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

"Other error: open nonexistent.txt: no such file or directory"

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

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