Habituellement, avant de lire et d'écrire des fichiers, vous devez déterminer si le fichier ou le répertoire existe, sinon certaines méthodes de traitement peuvent provoquer des erreurs de programme. Il est donc préférable de déterminer si le fichier existe avant d'effectuer toute opération.
La méthode utilisée par Golang pour déterminer si un fichier ou un dossier existe consiste à utiliser la valeur d'erreur renvoyée par la fonction os.Stat() pour déterminer :
1 Si l'erreur renvoyée est nulle. , cela indique que le fichier ou le dossier existe. Le dossier n'existe pas
2. Si le type d'erreur renvoyé est jugé vrai en utilisant os.IsNotExist(), cela signifie que le fichier ou le dossier existe
3. Si l'erreur renvoyée est d'un autre type, elle ne déterminera pas si
// 判断所给路径文件/文件夹是否存在 func Exists(path string) bool { _, err := os.Stat(path) //os.Stat获取文件信息 if err != nil { if os.IsExist(err) { return true } return false } return true } // 判断所给路径是否为文件夹 func IsDir(path string) bool { s, err := os.Stat(path) if err != nil { return false } return s.IsDir() } // 判断所给路径是否为文件 func IsFile(path string) bool { return !IsDir(path) }
Remarque :
Lorsque notre FileExist renvoie vrai, le fichier n'existe pas nécessairement.
Lorsque nous n'avons pas d'autorisations de lecture pour une certaine partie du chemin cible, os.Lstat et syscall.Access renverront également une erreur, mais cette erreur n'entraînera pas le retour true de os.IsNotExist.
Lorsque le fichier n'existe pas et que vous n'avez pas de droits d'accès au répertoire où se trouve le fichier ou à son répertoire supérieur, FileExist retournera toujours true, et le bug se produit à ce moment-là.
Le point important est donc qu'avant de juger si le fichier existe, vous devez d'abord juger si vous avez les droits d'accès au fichier et à son chemin.
Pour plus de connaissances sur le golang, veuillez faire attention à la colonne tutoriel golang.
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!