Como verificar se um arquivo ou diretório existe em Rust? (Path::exists e alternativas)
Olá a todos! Sou novo em Rust e estou tentando escrever um programa simples que verifica se um arquivo existe antes de lê-lo. Eu sei que em Python existe o conveniente `os.path.exists()`, mas em Rust ainda não entendi.
Aqui está meu código, que não funciona como espero:
```rust
use std::path::Path;
fn main() {
let path = Path::new("/tmp/test.txt");
if path.exists() {
println!("Arquivo existe!");
} else {
println!("Arquivo não encontrado.");
}
}
```
O problema é que não tenho certeza se estou usando `Path::exists()` corretamente. Também ouvi falar que existe `std::fs::metadata()`, mas não entendo a diferença. Além disso, preciso verificar se o caminho é um diretório, e não um arquivo — como fazer isso?
Por favor, me digam qual método é considerado idiomático em Rust? Devo tratar erros (por exemplo, sem permissão de acesso)? E o que fazer se eu quiser verificar a existência de vários arquivos de uma vez — isso será eficiente?
Agradeço desde já pela ajuda! Rust está me agradando muito.