Rust:
Перевірка наявності директорії
Як:
Стандартна бібліотека Rust (std
) включає функціональність для перевірки існування директорії за допомогою модулів std::path::Path
і std::fs
. Ось простий приклад використання стандартного підходу Rust:
use std::path::Path;
fn main() {
let path = Path::new("/path/to/directory");
if path.exists() && path.is_dir() {
println!("Директорія існує.");
} else {
println!("Директорія не існує.");
}
}
Приклад виводу, за умови, що директорія існує:
Директорія існує.
Для більш складних сценаріїв або розширених функцій (як-от асинхронні операції з файловою системою), ви можете розглянути використання сторонньої бібліотеки, наприклад tokio
з її асинхронним модулем fs
, особливо, якщо ви працюєте в асинхронному рантаймі. Ось як ви могли б досягти того ж з tokio
:
Спочатку додайте tokio
до вашого Cargo.toml
:
[dependencies]
tokio = { version = "1.0", features = ["full"] }
Потім використовуйте tokio::fs
, щоб асинхронно перевірити, чи існує директорія:
use tokio::fs;
#[tokio::main]
async fn main() {
let path = "/path/to/directory";
match fs::metadata(path).await {
Ok(metadata) => {
if metadata.is_dir() {
println!("Директорія існує.");
} else {
println!("Шлях існує, але це не директорія.");
}
},
Err(_) => println!("Директорія не існує."),
}
}
Приклад виводу, за умови, що директорія не існує:
Директорія не існує.
Ці приклади підкреслюють, як Rust та його екосистема пропонують як синхронні, так і асинхронні підходи до перевірки існування директорій, задовольняючи широкий спектр потреб розробки програмного забезпечення.