Comment vérifier si un fichier ou un répertoire existe?

Je veux vérifier l’existence du fichier ./conf/app.ini dans mon code Go, mais je ne peux pas trouver un bon moyen de le faire.

Je sais qu’il existe une méthode de fichier en Java: public boolean exists() , qui renvoie true si le fichier ou le répertoire existe.

Mais comment cela peut-il être fait dans Go?

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

Édité pour append une gestion des erreurs.

Vous pouvez utiliser ceci:

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

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

Plus de FYI, depuis que j’ai regardé autour de vous pendant quelques minutes en pensant que ma question serait une recherche rapide.

Comment vérifier si le chemin représente un répertoire existant dans Go?

C’était la réponse la plus populaire dans mes résultats de recherche, mais ici et ailleurs, les solutions ne permettent que de vérifier l’existence. Pour vérifier si path représente un répertoire existant, j’ai trouvé que je pouvais facilement:

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

Une partie de mon problème était que je m’attendais path/filepath package path/filepath contienne la fonction isDir ().

Un moyen simple de vérifier si le fichier existe ou non:

 if _, err := os.Stat("/path/to/whatever"); os.IsNotExist(err) { // path/to/whatever does not exist } if _, err := os.Stat("/path/to/whatever"); err == nil { // path/to/whatever exists } 

Sources:

  • les mattes ont fait cette idée le 6 août ’14
  • Sridhar Ratnakumar a fait cette réponse le 21 sept. 12

Il existe un moyen simple de vérifier si votre fichier existe ou non:

 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 } }