Beim Benutzen
file.createNewFile();
Ich bekomme die folgende Ausnahme
java.io.IOException: Parent directory of file does not exist: /.../pkg/databases/mydb
Ich frage mich, ob es eine createNewFile gibt, die die fehlenden übergeordneten Verzeichnisse erstellt.
new File("file.txt").getParentFile()
zurückgibtnull
,new File("dir/file.txt").getParentFile()
das gleiche zurückgibt wienew File("dir")
mkdirs
wenn die Datei , die Sie versuchen , erstellen nicht in einem nicht vorhandenen Verzeichnis ist, aber mein Anwendungsfall ist , dass ich mehrere Dateien erschaffe, einige übergeordnete Verzeichnisse von denen haben, während andere dies nicht tun.Jons Antwort funktioniert, wenn Sie sicher sind, dass die Pfadzeichenfolge, mit der Sie eine Datei erstellen, übergeordnete Verzeichnisse enthält, dh wenn Sie sicher sind, dass der Pfad die Form hat
<parent-dir>/<file-name>
.Wenn dies nicht der Fall ist, dh ein relativer Pfad des Formulars ist
<file-name>
,getParentFile()
wird zurückgegebennull
.Z.B
Wenn Ihr Dateipfad möglicherweise übergeordnete Verzeichnisse enthält oder nicht, sind Sie mit dem folgenden Code sicherer:
quelle
Ab Java7 können Sie auch die NIO2-API verwenden:
quelle