2009-06-25 6 views
1

Les répertoires some_folder, some_folder_1, some_folder_2 et some_folder_3 n'existent pas initialement.Java: méthode appropriée de création de répertoires

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(); 
} 

Serait-ce un bon moyen de le faire?

+0

Vous pouvez également vérifier la valeur de retour de mkdirs() pour faire en sorte que le directeur y a été créé. – McDowell

Répondre

6

Ne pas utiliser le séparateur de chemin, utilisez le constructeur correct à la place:

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

Eh bien, vous n'avez pas besoin de tests - mkdirs retourne juste false si le répertoire existe déjà. Je préfère utiliser un fichier « base » pour some_folder pour éviter de coder en dur la barre oblique, même si une barre oblique est susceptible de travailler sur les plates-formes les plus populaires :)

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(); 

Notez que ce won » t jeter des exceptions si les noms existent déjà, mais comme fichiers au lieu des dossiers ...

+0

Pour ajouter à cela, si vous avez plus de 2 ou 3 dossiers, vous pourriez envisager des boucles et des collections –

+0

D'accord (selon la réponse de Carl - sauf de préférence avec des accolades :) –

1

ou

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(); 
Questions connexes