Estoy tratando de crear un conjunto de directorios anidados a partir de un ejecutable de Go como 'dir1 / dir2 / dir3'. He logrado crear un solo directorio con esta línea:
os.Mkdir("." + string(filepath.Separator) + c.Args().First(),0777);
Sin embargo, no tengo idea de cómo abordar la creación de un conjunto anidado predeterminado de directorios dentro de ese directorio.
0755
yos.ModePerm
.De esta forma no tienes que usar ningún número mágico:
Además, en lugar de usar + para crear rutas, puede usar:
Lo anterior utiliza automáticamente los separadores correctos en cada plataforma.
fuente
Si el problema es crear todos los directorios principales necesarios, podría considerar usar
os.MkDirAll()
El path_test.go es un buen ejemplo de cómo se usa:
(Asegúrese de especificar un valor de permiso razonable, como se menciona en esta respuesta )
fuente
Se puede utilizar un método de utilidad como el siguiente para resolver esto.
fuente
Esta es una alternativa para lograr lo mismo, pero evita la condición de carrera causada por tener dos operaciones distintas "comprobar ... y ... crear".
fuente