Изучение Rust: удобное руководство по листингу каталогов

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.