Avatar ·

Cómo verificar si existe un archivo o directorio en Go

¡Hola a todos! Acabo de empezar a aprender Go y me encontré con una tarea aparentemente simple: necesito escribir una función que verifique si existe un archivo o carpeta en una ruta dada. Estoy acostumbrado a Python, donde está `os.path.exists()`, pero en Go no encuentro una forma tan simple. Intenté usar `os.Stat()`, pero no entiendo bien cómo manejar los errores correctamente. Por ejemplo, escribí este código: ```go package main import ( "fmt" "os" ) func main() { path := "./test.txt" _, err := os.Stat(path) if err == nil { fmt.Println("El archivo existe") } else if os.IsNotExist(err) { fmt.Println("El archivo no existe") } else { fmt.Println("Ocurrió un error:", err) } } ``` Pero me preocupa que `os.Stat()` devuelva un error no solo cuando el archivo no existe, sino también en otros problemas (por ejemplo, permisos insuficientes). ¿Estoy haciéndolo bien? ¿Quizás hay una forma más idiomática en Go? ¿Y cómo distinguir un archivo de un directorio después de la verificación?