如何检查文件或目录在Rust中是否存在?(Path::exists 及替代方案)
大家好!我是Rust新手,正在尝试编写一个简单的程序,在读取文件前检查它是否存在。我知道Python中有方便的`os.path.exists()`,但在Rust中我还没搞明白。
以下是我的代码,它没有按我预期的方式工作:
```rust
use std::path::Path;
fn main() {
let path = Path::new("/tmp/test.txt");
if path.exists() {
println!("文件存在!");
} else {
println!("文件未找到。");
}
}
```
问题在于我不确定是否正确使用了`Path::exists()`。我还听说有`std::fs::metadata()`,但不知道区别。另外,我需要检查路径是否是目录而不是文件——该怎么做?
请告诉我哪种方式在Rust中是惯用的?是否需要处理错误(例如,没有权限)?如果我想同时检查多个文件是否存在,这样做效率高吗?
提前感谢帮助!我非常喜欢Rust。