Avatar ·

如何检查文件或目录在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。