2012-05-14 27 views
7

In Java muss ich eine Zeichenfolge in eine neue Datei schreiben, wie 'c: \ test \ upload \ myfile.txt', wenn der Ordner 'upload' nicht existiert, wird es automatisch erstellt. wie es geht ? Apache Commons IO hat diese API?Wie erstelle ich automatisch einen fehlenden Ordner?

+0

möglich duplicate of [Methode in Java, um eine Datei an einem Ort zu erstellen, ggf. Verzeichnisse erstellen?] (Http://stackoverflow.com/questions/1752518/method-in-java-to-create-a-file -at-a-location-creating-directories-falls notwendig) – skaffman

Antwort

11
File file = new File(...); 
file.mkdirs(); //for several levels, without the "s" for one level 
FileWriter fileWriter = new FileWriter(file); 
fileWriter.write("..."); 

Erstellt das Verzeichnis, das von diesem abstrakten Pfadnamen benannt, einschließlich aller notwendigen, aber nicht vorhandene übergeordnete Verzeichnisse. Beachten Sie, dass bei fehlgeschlagener Operation möglicherweise einige der erforderlichen übergeordneten Verzeichnisse erstellt wurden.

Rückgabe: true, wenn und nur wenn das Verzeichnis erstellt wurde, zusammen mit allen erforderlichen übergeordneten Verzeichnissen; andernfalls false

Siehe File.mkdirs() und File.mkdir()

+0

Das beantwortet die Frage eigentlich nicht. – skaffman

+0

Tatsächliches Schreiben in die Datei ist nicht in der Antwort, die Sie meinen? Ich nahm an, das war nicht das Problem, wenn man den Titel der Frage bedenkt. Update: Datei zum Schreiben hinzugefügt. –

3
new File(fileToSave.getParent()).mkdirs(); 

Es hat eine boolean zurückgibt, wenn die Herstellung gelungen zu überprüfen (fehl, wenn die Festplatte voll ist oder ob eine Datei vorhanden mit dem Namen ‚upload‘, etc.

)
3

in Zusätzlich auf die akzeptierte Antwort, da die Frage auch die Bibliothek Apache Commons IO erwähnt, berichte ich in der folgenden Lösung von thi mit s schöne Bibliothek:

File file = new File("... the directory path ..."); 
FileUtils.forceMkdir(file); 

Diese Lösung verwendet die Klasse FileUtils, aus dem Paket org.apache.commons.io und das Verfahren forceMkdir, dass „ein Verzeichnis macht, alle notwendigen, aber nicht vorhandene übergeordnete Verzeichnisse“.

+1

Diese Lösung erzwingt das Abfangen von Ausnahmen ('IOException', wenn Sie eine vorhandene Datei übergeben). – naXa

Verwandte Themen