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

Функция remove_dir_all

Функция remove_dir_all удаляет директорию по указанному пути вместе со всеми вложенными файлами и поддиректориями. Параметром функция принимает путь к удаляемой директории. Если путь указывает на файл, а не на директорию, будет возвращена ошибка. Функция возвращает Ok(()) при успешном удалении и Err в случае ошибки.

Синтаксис

std::fs::remove_dir_all(path)

Пример

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

use std::fs; fn main() { fs::create_dir_all("test_dir/sub_dir").unwrap(); fs::write("test_dir/file.txt", "abcde").unwrap(); fs::write("test_dir/sub_dir/nested.txt", "12345").unwrap(); let res = fs::remove_dir_all("test_dir"); println!("{:?}", res); }

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

Ok(())

Пример

Давайте попробуем удалить директорию, которой не существует, и посмотрим на возвращаемую ошибку:

use std::fs; fn main() { let res = fs::remove_dir_all("missing_dir"); println!("{:?}", res); }

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

Err(Os { code: 2, kind: NotFound, message: "No such file or directory" })

Пример

Давайте проверим, что директория действительно удалена, с помощью Path::exists:

use std::fs; use std::path::Path; fn main() { fs::create_dir_all("test_dir/sub_dir").unwrap(); fs::remove_dir_all("test_dir").unwrap(); let res = Path::new("test_dir").exists(); println!("{}", res); }

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

false

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

  • функция remove_dir,
    которая удаляет только пустую директорию
  • функция remove_file,
    которая удаляет файл по указанному пути
  • функция create_dir_all,
    которая рекурсивно создаёт директорию со всеми родителями
  • функция read_dir,
    которая возвращает итератор по содержимому директории
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить