2009-06-25 16 views
1

Die Verzeichnisse some_folder, some_folder_1, some_folder_2 und some_folder_3 existieren zunächst nicht.Java: Ordnungsgemäße Methode zur Erstellung von Verzeichnissen

File folder1 = new File("some_folder/some_folder_1"); 
File folder2 = new File("some_folder/some_folder_2"); 
File folder3 = new File("some_folder/some_folder_3"); 

if(!folder1.exists()) { 
    folder1.mkdirs(); 
} 

if(!folder2.exists()) { 
    folder2.mkdirs(); 
} 

if(!folder3.exists()) { 
    folder3.mkdirs(); 
} 

Wäre das ein guter Weg, dies zu tun?

+0

Sie können auch den Rückgabewert von mkdirs zu überprüfen(), dass der Regisseur, um sicherzustellen, y wurde erstellt. – McDowell

Antwort

6

Verwenden Sie den Pfadtrenn nicht, stattdessen den richtigen Konstruktor verwenden:

File folder1 = new File("some_folder", "some_folder_1"); 
if (!folder1.exists()) { 
    folder1.mkdirs(); // returns a boolean 
} 
6

Nun Sie die Tests nicht brauchen - mkdirs gibt nur false, wenn das Verzeichnis bereits vorhanden ist. Ich würde es vorziehen, eine „Basis“ Datei für some_folder verwenden Hartcodierung des Schrägstrichs zu vermeiden, auch wenn ein Schrägstrich ist wahrscheinlich auf den meisten gängigen Plattformen zu arbeiten :)

File baseFolder = new File("some_folder"); 
new File(baseFolder, "some_folder_1").mkdirs(); 
new File(baseFolder, "some_folder_2").mkdirs(); 
new File(baseFolder, "some_folder_3").mkdirs(); 

Beachten Sie, dass dieser won‘ t keine Ausnahmen auslösen, wenn die bereits Namen existieren, aber als Dateien statt Ordner ...

+0

Um das hinzuzufügen, wenn Sie mehr als 2 oder 3 Ordner haben, könnten Sie Loops und Sammlungen in Betracht ziehen. –

+0

Einverstanden (laut Carls Antwort - außer vorzugsweise mit geschweiften Klammern :) –

1

oder

String[] folders = {"some_folder_1", "some_folder_2", "some_folder_3"}; 
File root = new File("some_folder"); 
for (String folder: folders) 
    new File(root, folder).mkdirs(); 
Verwandte Themen