Avatar ·

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.