如何检查 Rust 中文件或目录是否存在?
大家好!我是 Rust 新手,正在尝试编写一个简单的文件处理工具。在对某个路径执行操作(如读取或删除)之前,我需要检查该路径上的文件或目录是否存在。我在文档中找到了 `std::path::Path::exists()` 方法,但不确定这是否是正确的做法,因为一些讨论中提到数据竞争和符号链接的问题。
以下是我当前的做法:
```rust
use std::path::Path;
fn main() {
let path = Path::new("/tmp/my_file.txt");
if path.exists() {
println!("文件存在!");
} else {
println!("文件未找到。");
}
}
```
这段代码可以运行,但我听说在 `exists()` 检查和实际打开文件之间,状态可能会发生变化(例如,另一个进程删除了文件)。如何正确处理这种情况?在 Rust 中是否有更可靠的方法来检查路径是否存在?是否需要考虑符号链接?