Функция read_dir
Функция read_dir читает содержимое указанной директории и возвращает итератор, элементами которого являются результаты Result<DirEntry, Error>. Параметром функция принимает путь к директории, содержимое которой нужно прочитать. Каждый элемент итератора - это запись DirEntry, из которой можно получить имя файла или поддиректории, а также полный путь.
Синтаксис
std::fs::read_dir(path)
Пример
Давайте прочитаем содержимое текущей директории и выведем имена всех найденных записей:
use std::fs;
fn main()
{
let entries = fs::read_dir(".").unwrap();
for entry in entries
{
let entry = entry.unwrap();
let name = entry.file_name();
println!("{:?}", name);
}
}
Результат выполнения кода:
"Cargo.toml"
"src"
"target"
Пример
Давайте получим полный путь к каждой записи директории с помощью метода path:
use std::fs;
fn main()
{
let entries = fs::read_dir("src").unwrap();
for entry in entries
{
let entry = entry.unwrap();
let path = entry.path();
println!("{:?}", path);
}
}
Результат выполнения кода:
"src/main.rs"
"src/lib.rs"
Пример
Давайте соберём имена всех файлов и поддиректорий в вектор строк:
use std::fs;
fn main()
{
let mut res = Vec::new();
for entry in fs::read_dir(".").unwrap()
{
let entry = entry.unwrap();
let name = entry.file_name();
res.push(name);
}
println!("{:?}", res);
}
Результат выполнения кода:
["Cargo.toml", "src", "target"]
Смотрите также
-
функция
read,
которая читает содержимое файла в байтовый вектор -
функция
read_to_string,
которая читает содержимое файла в строку -
функция
metadata,
которая возвращает метаданные файла или директории -
функция
canonicalize,
которая возвращает канонический абсолютный путь