Déterminer si un fichier existe est une exigence très courante, et il existe de nombreuses solutions pour réaliser cette fonction dans Golang.
Implémentation multiplateforme
L'idée de l'implémentation multiplateforme est très simple Si un fichier n'existe pas, alors l'utilisation de os.Lstat reviendra certainement. une erreur. Jugez simplement l’erreur. Cela signifie simplement que le fichier n’existe pas.
Peut-être avez-vous remarqué que certains codes utilisent os.Open pour terminer le travail ci-dessus, mais il est préférable de ne pas le faire, car bien qu'il n'y ait aucune différence dans les fonctions remplies par les deux, la surcharge d'appel de open et stat sont différents. Ce dernier est plus petit que le premier, et il est plus logique de vérifier si un fichier existe que d'essayer de l'ouvrir directement.
Jetons ensuite un coup d'œil au code implémenté :
func FileExist(path string) bool { _, err := os.Lstat(path) return !os.IsNotExist(err) }
Implémentation de la plateforme POSIX
Si votre programme est destiné à la plateforme POSIX (comme UNIX, Linux, etc.), il existe alors une solution plus simple : syscall.Access.
syscall.Access fournit aux utilisateurs un moyen de vérifier les métainformations des fichiers. Il est généralement utilisé pour vérifier les autorisations et l'existence des fichiers.
Vérifiez le fichier en utilisant l'indicateur syscall.F_OK S'il n'existe pas, la même erreur que os.Lstat sera renvoyée :
func FileExist(path string) bool { err := syscall.Access(path, syscall.F_OK) return !os.IsNotExist(err) }
Le plus grand avantage de cette implémentation est qu'elle est est simple et intuitif, mais il n'est pas disponible sous Windows.
Pour plus de connaissances sur Golang, veuillez faire attention à la colonne Tutoriel Golang sur le site Web PHP chinois.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!