Rust:
检查目录是否存在

如何操作:

Rust 的标准库 (std) 包括了通过 std::path::Pathstd::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 实现相同功能:

首先,在你的 Cargo.toml 中添加 tokio

[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 及其生态系统如何提供同步和异步的目录存在性检查方法,以满足广泛的软件开发需求。