1

ディレクトリsome_folder、some_folder_1、some_folder_2、およびsome_folder_3は最初は存在しません。

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

それはこれを行うための良い方法でしょうか?

4

3 に答える 3

6

パス区切り文字を使用せず、代わりに正しいコンストラクターを使用してください。

File folder1 = new File("some_folder", "some_folder_1"); 
if (!folder1.exists()) {
    folder1.mkdirs(); // returns a boolean
}
于 2009-06-25T16:34:41.800 に答える
6

テストは必要ありませんfalse。ディレクトリがすでに存在する場合、mkdirsは単に戻ります。スラッシュが最も一般的なプラットフォームで機能する可能性が高い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();

名前がすでに存在する場合は例外をスローせず、フォルダではなくファイルとしてスローすることに注意してください...

于 2009-06-25T16:37:28.523 に答える
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();
于 2009-06-25T16:42:36.590 に答える