Java - Язык:Правильный способ создания каталогов
-
20-08-2019 - |
Вопрос
Каталоги 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();
}
Было бы это хорошим способом сделать это?
Решение
Не используйте разделитель путей, используйте вместо него правильный конструктор:
File folder1 = new File("some_folder", "some_folder_1");
if (!folder1.exists()) {
folder1.mkdirs(); // returns a boolean
}
Другие советы
Ну, вам не нужны тесты - mkdirs просто возвращает false
если каталог уже существует.Я бы предпочел использовать один "базовый" файл для 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();
Обратите внимание, что это не приведет к возникновению каких-либо исключений, если имена уже существуют, но как Файлы вместо папок...
или
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();
Не связан с StackOverflow