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 la valeur 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
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
}
Édité pour ajouter la 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
}
}
Plus que des questions d’information, depuis que j’ai regardé autour de moi pendant quelques minutes, pensant que ma question serait une recherche rapide.
Comment vérifier si path 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 fournissent qu'un contrôle d'existence. Pour vérifier si path
représente un répertoire existant, j'ai trouvé que je pourrais 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 à ce que le 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: