Comment vérifier si un fichier existe en Go ?
Bonjour à tous ! Je suis un développeur Go débutant, j'écris un petit outil pour traiter des logs. Avant d'ouvrir un fichier, je dois vérifier s'il existe sur le disque. En Python, j'avais l'habitude d'utiliser os.path.exists(), mais en Go je ne trouve pas d'équivalent.
J'ai essayé d'utiliser os.Stat(), mais je ne suis pas sûr que ce soit correct. Voici mon code actuel :
package main
import (
"fmt"
"os"
)
func main() {
path := "/tmp/myfile.log"
// Comment vérifier si le fichier existe ?
_, err := os.Stat(path)
if err == nil {
fmt.Println("Le fichier existe !")
} else {
fmt.Println("Le fichier n'existe pas !")
}
}
Le problème est que os.Stat() retourne une erreur non seulement quand le fichier n'existe pas, mais aussi pour d'autres problèmes — par exemple, pas de droits d'accès. J'obtiens des faux positifs. Comment écrire correctement la vérification ? Dois-je utiliser os.IsNotExist() ? Ou existe-t-il une méthode spéciale dans la bibliothèque standard ?