Avatar ·

如何检查 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 中是否有更可靠的方法来检查路径是否存在?是否需要考虑符号链接?