Estou tentando criar um conjunto de diretórios aninhados de um executável Go, como 'dir1 / dir2 / dir3'. Consegui criar um único diretório com esta linha:
os.Mkdir("." + string(filepath.Separator) + c.Args().First(),0777);
No entanto, não tenho ideia de como criar um conjunto predeterminado de diretórios aninhados dentro desse diretório.
0755
eos.ModePerm
.Dessa forma, você não precisa usar nenhum número mágico:
Além disso, em vez de usar + para criar caminhos, você pode usar:
O acima usa os separadores corretos automaticamente em cada plataforma para você.
fonte
Se o problema for criar todos os diretórios pais necessários, você pode considerar o uso
os.MkDirAll()
O path_test.go é uma boa ilustração de como usá-lo:
(Certifique-se de especificar um valor de permissão razoável, conforme mencionado nesta resposta )
fonte
Um método utilitário como o seguinte pode ser usado para resolver isso.
fonte
Esta é uma alternativa para obter o mesmo, mas evita a condição de corrida causada por ter duas operações distintas de "verificar .. e .. criar".
fonte