Rust — мощный и выразительный язык программирования, который приобрел популярность благодаря своей ориентации на безопасность и производительность памяти. В этой статье блога мы окунемся в мир Rust и рассмотрим различные методы получения списка каталогов. Независимо от того, являетесь ли вы новичком или опытным разработчиком, это руководство предоставит вам практические примеры кода и разговорные объяснения, которые помогут вам ориентироваться в списке каталогов в Rust. Итак, начнем!
Метод 1: использование модуля fs
Модуль fs в стандартной библиотеке Rust предоставляет функции для работы с файловой системой. Чтобы составить список каталогов, мы можем использовать функцию read_dir
, которая возвращает итератор по записям в каталоге. Вот пример:
use std::fs;
fn main() {
if let Ok(entries) = fs::read_dir(".") {
for entry in entries {
if let Ok(entry) = entry {
println!("{}", entry.file_name().to_string_lossy());
}
}
}
}
Метод 2: использование контейнера walkdir
Крейт walkdir — это популярная сторонняя библиотека, предоставляющая удобный способ рекурсивного перемещения по каталогам. Вот как его можно использовать для вывода списка каталогов:
use walkdir::WalkDir;
fn main() {
for entry in WalkDir::new(".") {
if let Ok(entry) = entry {
if entry.file_type().is_dir() {
println!("{}", entry.path().display());
}
}
}
}
Метод 3: использование контейнера glob
Если вам нужно выполнить поиск каталогов по определенному шаблону, контейнер glob может оказаться удобным инструментом. Он позволяет использовать в поисковом запросе подстановочные знаки, такие как *
и ?
. Вот пример:
use glob::glob;
fn main() {
if let Ok(entries) = glob("*") {
for entry in entries {
if let Ok(entry) = entry {
if entry.is_dir() {
println!("{}", entry.display());
}
}
}
}
}
В этой статье мы рассмотрели несколько способов получения списка каталогов в Rust. Мы рассмотрели использование модуля fs из стандартной библиотеки, крейта walkdir для рекурсивного обхода каталогов и крейта glob для поиска по шаблонам. У каждого метода есть свои преимущества, поэтому выберите тот, который лучше всего подходит для вашего случая использования. Не забудьте импортировать необходимые ящики или модули, прежде чем использовать эти методы в своих проектах Rust. Применяя эти методы, вы будете хорошо подготовлены к эффективному решению задач по просмотру каталогов в Rust.