Avatar ·

Como verificar se um arquivo ou diretório existe em Go?

Olá a todos! Comecei a estudar Go recentemente e me deparei com uma tarefa aparentemente simples: preciso escrever uma função que verifica se um arquivo ou pasta existe em um determinado caminho. Estou acostumado com Python, onde existe `os.path.exists()`, mas em Go não encontro uma maneira tão simples. Tentei usar `os.Stat()`, mas não entendo bem como lidar com os erros corretamente. Por exemplo, escrevi este código: ```go package main import ( "fmt" "os" ) func main() { path := "./test.txt" _, err := os.Stat(path) if err == nil { fmt.Println("Arquivo existe") } else if os.IsNotExist(err) { fmt.Println("Arquivo não existe") } else { fmt.Println("Ocorreu um erro:", err) } } ``` Mas me preocupa que `os.Stat()` retorna um erro não apenas quando o arquivo não existe, mas também em outros problemas (por exemplo, permissões insuficientes). Estou fazendo certo? Existe uma maneira mais idiomática em Go? E como diferenciar um arquivo de um diretório após a verificação?