J'essaie de créer un ensemble de répertoires imbriqués à partir d'un exécutable Go tel que «dir1 / dir2 / dir3». J'ai réussi à créer un répertoire unique avec cette ligne:
os.Mkdir("." + string(filepath.Separator) + c.Args().First(),0777);
Cependant, je n'ai aucune idée de comment aborder la création d'un ensemble imbriqué prédéterminé de répertoires à l'intérieur de ce répertoire.
0755
etos.ModePerm
.De cette façon, vous n'avez pas besoin d'utiliser de nombres magiques:
De plus, plutôt que d'utiliser + pour créer des chemins, vous pouvez utiliser:
Ce qui précède utilise automatiquement les bons séparateurs sur chaque plate-forme pour vous.
la source
Si le problème est de créer tous les répertoires parents nécessaires, vous pouvez envisager d'utiliser
os.MkDirAll()
Le path_test.go est une bonne illustration de son utilisation:
(Assurez-vous de spécifier une valeur d'autorisation raisonnable, comme mentionné dans cette réponse )
la source
Une méthode utilitaire telle que la suivante peut être utilisée pour résoudre ce problème.
la source
Ceci est une alternative pour obtenir la même chose mais cela évite la condition de concurrence causée par deux opérations distinctes "vérifier .. et .. créer".
la source