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

Функция os.RemoveAll

Функция os.RemoveAll удаляет переданную директорию и все её содержимое рекурсивно. В первый параметр функция принимает путь к директории, которую нужно удалить. Функция возвращает ошибку типа error, если удаление не удалось.

Синтаксис

os.RemoveAll(path)

Пример

Давайте создадим временную директорию с вложенными файлами и удалим её с помощью os.RemoveAll:

package main import ( "fmt" "os" "path/filepath" ) func main() { // Создаем временную директорию tempDir := filepath.Join(os.TempDir(), "example") os.MkdirAll(tempDir, 0755) // Создаем вложенный файл filePath := filepath.Join(tempDir, "test.txt") os.WriteFile(filePath, []byte("hello"), 0644) // Удаляем директорию и всё её содержимое err := os.RemoveAll(tempDir) if err != nil { fmt.Println(err) } else { fmt.Println(tempDir + " deleted successfully") } }

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

"/tmp/example deleted successfully"

Пример

Давайте попробуем удалить несуществующую директорию с помощью os.RemoveAll:

package main import ( "fmt" "os" ) func main() { // Пытаемся удалить несуществующую директорию err := os.RemoveAll("/non/existent/path") if err != nil { fmt.Println("Error:", err) } else { fmt.Println("Directory deleted") } }

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

"Error: remove /non/existent/path: no such file or directory"

Пример

Давайте создадим структуру из нескольких вложенных директорий с файлами и удалим их рекурсивно:

package main import ( "fmt" "os" "path/filepath" ) func main() { // Создаем сложную структуру директорий rootDir := filepath.Join(os.TempDir(), "root") subDir := filepath.Join(rootDir, "sub", "subsub") os.MkdirAll(subDir, 0755) // Создаем несколько файлов os.WriteFile(filepath.Join(rootDir, "file1.txt"), []byte("content1"), 0644) os.WriteFile(filepath.Join(rootDir, "sub", "file2.txt"), []byte("content2"), 0644) os.WriteFile(filepath.Join(subDir, "file3.txt"), []byte("content3"), 0644) // Рекурсивно удаляем всё err := os.RemoveAll(rootDir) if err != nil { fmt.Println(err) } else { fmt.Println(rootDir + " and all contents removed") } }

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

"/tmp/root and all contents removed"

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

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