2009-06-25 28 views
1

ディレクトリsome_folder、some_folder_1、some_folder_2、およびsome_folder_3は、最初は存在しません。Java:ディレクトリ作成の適切な方法

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

これは良い方法でしょうか?

+0

としてあなたはまた、mkdirsの戻り値をチェックすることもできます()監督のことを保証するために、 yが作成されました。 – McDowell

答えて

6

ではなく、正しいコンストラクタを使用して、パスの区切り文字を使用しないでください:

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

さてあなたは、テストを必要としない - ディレクトリがすでに存在する場合mkdirsだけfalseを返します。私はスラッシュがそう最も人気のあるプラットフォーム上で動作するようにされていても、スラッシュをハードコーディングを避けるためにsome_folderのための1つの「基本」ファイルを使用することを好むだろう:)

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

注意「をこの勝ったこと名前がすでに存在する場合、tは任意の例外をスローが、ファイルの代わりにフォルダの ...

+0

これに追加するには、2つまたは3つ以上のフォルダがある場合は、ループとコレクションを考慮する必要があるかもしれません。 –

+0

合意(カールの答えに従って - 中括弧を除いて:) –

1

または

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(); 
関連する問題