Maison >développement back-end >Golang >Comment puis-je vérifier l'existence d'un fichier dans Go ?

Comment puis-je vérifier l'existence d'un fichier dans Go ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-26 21:28:10834parcourir

How Can I Check for File Existence in Go?

Vérification de l'existence d'un fichier dans Go

Lorsque vous travaillez avec des fichiers dans Go, il est souvent nécessaire de déterminer si un fichier existe avant de procéder à d'autres opérations. . Contrairement à os.path.exists de Python, la bibliothèque standard Go ne fournit pas de fonction directe à cet effet.

Manière idiomatique de vérifier l'existence d'un fichier

Pour vérifier si un fichier n'existe pas :

if _, err := os.Stat("/path/to/whatever"); errors.Is(err, os.ErrNotExist) {
  // path/to/whatever does not exist
}

Pour vérifier si un fichier existe :

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

} else if errors.Is(err, os.ErrNotExist) {
  // path/to/whatever does *not* exist

} else {
  // Schrodinger: file may or may not exist. See err for details.

  // Therefore, do *NOT* use !os.IsNotExist(err) to test for file existence
}

Explication

La fonction os.Stat renvoie un objet FileInfo représentant les attributs du fichier ou une erreur si le fichier n'existe pas. En utilisant la fonction error.Is pour comparer l'erreur à os.ErrNotExist, vous pouvez faire la distinction entre le fichier qui n'existe pas et d'autres erreurs.

Attention

Évitez d'utiliser la fonction négation de os.IsNotExist (par exemple, !os.IsNotExist(err)) pour tester l'existence du fichier, car cela peut conduire à un comportement inattendu dans certains cas.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn