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?