Avatar ·

Comment créer un dossier en Go s'il n'existe pas (mkdir if not exists)

Bonjour à tous ! Je viens de commencer à apprendre Go et j'ai rencontré un problème. J'ai besoin de créer un répertoire dans mon programme pour sauvegarder des logs, mais seulement s'il n'existe pas encore. Si le dossier existe déjà — rien à faire, juste continuer le travail. Le problème est que la fonction standard os.Mkdir() retourne une erreur si le répertoire existe déjà. J'ai essayé de vérifier d'abord avec os.Stat(), puis de créer, mais cela semble être une solution de fortune. Dans d'autres langages (par exemple, Python), il y a os.makedirs(exist_ok=True), et en PHP — mkdir($path, 0777, true). Y a-t-il quelque chose de similaire en Go ? Voici mon code actuel, qui me semble incorrect : ```go package main import ( "fmt" "os" ) func main() { path := "./logs" if _, err := os.Stat(path); os.IsNotExist(err) { err := os.Mkdir(path, 0755) if err != nil { fmt.Println("Erreur lors de la création du dossier :", err) } } } ``` Ce code fonctionne, mais j'ai entendu dire qu'il n'est pas thread-safe, et en général, cela peut...