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来避免对斜杠进行硬编码,即使正斜杠可能适用于大多数流行的平台:)

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 回答