Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsPmFsRA 368 of 373 menu
◀ ▶

Удаление дерева папок в Rust

Удаление дерева убирает папку вместе с тем, что внутри. Отдельно снимать каждый файл не нужно: система обходит содержимое и убирает все уровни. Команда возвращает результат без значения при удаче.

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

use std::fs; use std::io; fn wipe_tree() -> io::Result<()> { fs::remove_dir_all("data")?; Ok(()) } fn main() -> io::Result<()> { fs::create_dir_all("data/sub")?; fs::write("data/note.txt", "x")?; fs::write("data/sub/inner.txt", "y")?; wipe_tree()?; match fs::metadata("data") { Ok(_) => println!("still there"), Err(err) => println!("{}", err), } Ok(()) }

Обычное удаление каталога без команды на все дерево дает сбой, если внутри есть файлы:

use std::fs; fn main() { match fs::remove_dir("data") { Ok(()) => println!("removed"), Err(err) => println!("{}", err), } }

Дан путь:

let path = "docs";

Создайте папку с файлом, удалите дерево и проверьте, что путь больше не находится.

Дан путь:

let path = "data";

Сравните удаление одного уровня и удаление всего дерева.

Вынесите удаление дерева в функцию с исходом и вызовите ее из main.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить