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

Функция os.MkdirAll

Функция os.MkdirAll создает каталог с указанным именем и всеми необходимыми родительскими каталогами. Она принимает два параметра: путь в виде строки и права доступа в виде fs.FileMode. Возвращает ошибку, если операция не удалась. Если конечный каталог уже существует, функция вернет nil (при условии, что путь существует и является директорией).

Синтаксис

err := os.MkdirAll(path string, perm fs.FileMode)

Пример

Создадим вложенную структуру каталогов:

package main import ( "fmt" "os" ) func main() { path := "a/b/c/d" perm := 0755 err := os.MkdirAll(path, os.FileMode(perm)) if err != nil { fmt.Println("Error:", err) return } fmt.Println("Directories created:", path) }

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

"Directories created: a/b/c/d"

Пример

Попробуем создать уже существующую директорию:

package main import ( "fmt" "os" ) func main() { path := "test_dir" perm := 0700 // Создаем директорию в первый раз err := os.MkdirAll(path, os.FileMode(perm)) if err != nil { fmt.Println("First error:", err) return } // Пытаемся создать ту же директорию повторно err = os.MkdirAll(path, os.FileMode(perm)) if err != nil { fmt.Println("Second error:", err) return } fmt.Println("Directory already exists, no error") }

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

"Directory already exists, no error"

Пример

Обработаем ошибку, если не удается создать каталог из-за недостатка прав:

package main import ( "fmt" "os" ) func main() { path := "/root/forbidden_dir" perm := 0755 err := os.MkdirAll(path, os.FileMode(perm)) if err != nil { fmt.Println("Error:", err) return } fmt.Println("Success") }

Результат выполнения кода (будет выведена ошибка доступа):

"Error: mkdir /root: permission denied"

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

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