在Rust中,你可以使用`std::fs`模块来获取当前路径的所有文件和目录。以下是一个示例代码,它使用`std::fs::read_dir`函数来列出当前目录中的所有条目,并区分文件和目录:
```rust
use std::fs;
use std::path::Path;
fn main() {
// 获取当前目录的路径
let current_dir = env!("CARGO_MANIFEST_DIR");
let path = Path::new(current_dir);
// 读取当前目录中的所有条目
match fs::read_dir(path) {
Ok(entries) => {
for entry in entries {
match entry {
Ok(entry) => {
let path = entry.path();
if path.is_dir() {
// 打印目录
println!("目录: {}", path.display());
} else {
// 打印文件
println!("文件: {}", path.display());
}
}
Err(e) => eprintln!("无法读取条目: {}", e),
}
}
}
Err(e) => eprintln!("无法读取目录: {}", e),
}
}
```
这段代码首先使用`env!("CARGO_MANIFEST_DIR")`宏来获取当前项目的根目录路径,然后使用`fs::read_dir`函数读取该目录中的所有条目。对于每个条目,它检查条目是否是目录或文件,并相应地打印出来。
请注意,这个示例代码在运行时会列出项目根目录中的所有文件和目录,如果你想列出其他目录的内容,你需要修改`current_dir`变量的值,或者使用`std::env::current_dir`来获取并列出当前工作目录的内容。
此外,由于权限问题或文件系统错误,读取目录条目时可能会发生错误,所以示例代码中使用了错误处理来处理这些情况。