Ich versuche, eine Reihe verschachtelter Verzeichnisse aus einer ausführbaren Go-Datei wie 'dir1 / dir2 / dir3' zu erstellen. Es ist mir gelungen, mit dieser Zeile ein einziges Verzeichnis zu erstellen:
os.Mkdir("." + string(filepath.Separator) + c.Args().First(),0777);
Ich habe jedoch keine Ahnung, wie ich einen vorgegebenen verschachtelten Satz von Verzeichnissen in diesem Verzeichnis erstellen soll.
0755
und wählenos.ModePerm
.Auf diese Weise müssen Sie keine magischen Zahlen verwenden:
Anstatt + zum Erstellen von Pfaden zu verwenden, können Sie auch Folgendes verwenden:
Das obige verwendet automatisch die richtigen Trennzeichen auf jeder Plattform für Sie.
quelle
Wenn das Problem darin besteht, alle erforderlichen übergeordneten Verzeichnisse zu erstellen, können Sie die Verwendung in Betracht ziehen
os.MkDirAll()
Die Datei path_test.go ist eine gute Illustration zur Verwendung:
(Stellen Sie sicher, dass Sie einen sinnvollen Berechtigungswert angeben, wie in dieser Antwort erwähnt. )
quelle
Eine Dienstprogrammmethode wie die folgende kann verwendet werden, um dies zu lösen.
quelle
Dies ist eine Alternative, um dasselbe zu erreichen, aber es vermeidet Rennbedingungen, die durch zwei unterschiedliche "check ..and .. create" -Operationen verursacht werden.
quelle