go

¿Cómo verificar si existe un archivo o directorio denotado por una ruta en Golang?



(4)

Hay una manera simple de verificar si su archivo existe o no:

if _, err := os.Stat("./conf/app.ini"); err != nil { if os.IsNotExist(err) { ..... //Shows error if file not exists } else { ..... // Shows success message like file is there } }

Quiero verificar la existencia del archivo ./conf/app.ini en mi código de Golang. Pero no puedo encontrar una buena manera de hacerlo.

Sé que hay un método de archivo en Java: public boolean exists() , que devuelve verdadero si el archivo o directorio existe.

¿Pero cómo hacerlo en Golang?


Más de un FYI, ya que miré alrededor por unos minutos pensando que mi pregunta sería una búsqueda rápida de distancia.

¿Cómo verificar si la ruta representa un directorio existente en Go?

Esta fue la respuesta más popular en mis resultados de búsqueda, pero aquí y en otras partes las soluciones solo proporcionan verificación de existencia. Para comprobar si la path representa un directorio existente, descubrí que podría hacerlo fácilmente:

path := GetSomePath(); if stat, err := os.Stat(path); err == nil && stat.IsDir() { // path is a directory }

Parte de mi problema era que esperaba path/filepath paquete path/filepath contuviera la función isDir ().


Puedes usar esto:

if _, err := os.Stat("./conf/app.ini"); err != nil { if os.IsNotExist(err) { // file does not exist } else { // other error } }

Ver: http://golang.org/pkg/os/#IsNotExist


// exists returns whether the given file or directory exists or not func exists(path string) (bool, error) { _, err := os.Stat(path) if err == nil { return true, nil } if os.IsNotExist(err) { return false, nil } return true, err }

Editado para agregar el manejo de errores.