Я хочу напечатать все листовые каталоги древовидной структуры, начиная с заданного пути. Мое определение для «конечного каталога» - это любой каталог без подкаталогов.
У меня есть этот код:
for e in WalkDir::new(path)
.into_iter()
.filter_map(|e| e.ok()) {
if e.metadata().unwrap().is_dir() {
let mut has_subdir = false;
for entry in fs::read_dir(e.path()).unwrap() {
let path = entry.unwrap().path();
if path.is_dir() {
has_subdir = true;
break;
}
}
if (!has_subdir) {
println!("{}", e.path().display());
}
}
}
Это работает, но я не думаю, что это идиоматизм c , Я хотел бы получить результат как понимание списка.