سؤال

دليل 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();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top