لماذا نحتاج إلى التحقق مما إذا كان الملف "موجودًا"؟
أثناء التعامل مع عمليات الملفات (القراءة/الكتابة/الإنشاء/الحذف/التحديث وما إلى ذلك)، يمكن أن يتساءل العديد من المبتدئين لماذا نحتاج حتى إلى التحقق من وجود الملف؟ سيكون الرد المناسب على ذلك هو تجنب NoSuchFileException ، فهي دائمًا طريقة أكثر أمانًا للوصول إلى الملف. وبالتالي، تحتاج إلى التحقق من وجود الملف قبل الوصول إليه لتجنب أي استثناءات في وقت التشغيل.كيفية التحقق باستخدام طريقة file.exists()؟
توفر Java طريقة منطقية بسيطة، file.exists() والتي لا تتطلب أي معلمات للتحقق من الملف ذي الصلة على مسار معين. عند التحقق من وجود ملف، ضع 3 سيناريوهات قيد الاعتبار.- تم العثور على الملف.
- لم يتم العثور على الملف.
- حالة الملف غير معروفة إذا لم يتم منح الأذونات (لأسباب أمنية).
مثال
دعونا نلقي نظرة على مثال رمز بسيط لرؤية التنفيذ.package com.java.exists;
import java.io.File;
public class ExistsMethodInJava {
public static void main(String[] args) {
String filePath = "C:\\Users\\Lubaina\\Documents\\myNewTestFile.txt";
File file = new File(filePath);
// check if the file exists at the file path
System.out.println("Does File exists at \"" + filePath + "\"?\t" + file.exists());
filePath = "C:\\Users\\Lubaina\\Documents\\myOtherTestFile.txt";
File nextFile = new File(filePath);
// check if the file exists at the file path
System.out.println("Does File exists at \"" + filePath + "\"?\t" + nextFile.exists());
}
}
انتاج |
هل الملف موجود في "C:\Users\Lubaina\Documents\myNewTestFile.txt"؟ صحيح هل الملف موجود في "C:\Users\Lubaina\Documents\myOtherTestFile.txt"؟ خطأ شنيع
يرجى ملاحظة أن طريقة file.exists() تعمل أيضًا مع مسارات " الدليل ". إذا قمت بالتحقق من مسار دليل صالح باستخدام هذه الطريقة، فسوف يُرجع صحيحًا أو خطأً بخلاف ذلك. للحصول على فهم أفضل، يمكنك إلقاء نظرة على كتلة التعليمات البرمجية التالية.
package com.java.exists;
import java.io.File;
public class CheckFileExists {
// check if the "file" resource exists and not "directory"
public static boolean checkFileExists(File file) {
return file.exists() && !file.isDirectory();
}
public static void main(String[] args) {
String directoryPath = "C:\\Users\\Lubaina\\Documents\\javaContent";
File direcotry = new File(directoryPath);
// check if the directory exists at the dir path
if (direcotry.exists()) {
System.out.println("Direcotry at \"" + directoryPath + "\" exists.\n");
} else {
System.out.println("Direcotry at \"" + directoryPath + "\" does not exist.\n");
}
// check if the resource present at the path is a "file" not "directory"
boolean check = checkFileExists(direcotry);
System.out.println("Is the resource \"" + direcotry + "\" a File? " + check);
String filePath = "C:\\Users\\Lubaina\\Documents\\myNewTestFile.txt";
File file = new File(filePath);
check = checkFileExists(file);
System.out.println("Is the resource \"" + file + "\" a File? " + check);
}
}
انتاج |
الدليل في "C:\Users\Lubaina\Documents\JavaContent" موجود. هل المورد "C:\Users\Lubaina\Documents\javaContent" هو ملف؟ خطأ هل المورد "C:\Users\Lubaina\Documents\myNewTestFile.txt" هو ملف؟ حقيقي
كما ترون من الإخراج، تم التحقق من صحة الدليل المسمى "javaContent" بواسطة طريقة موجود () . لذا، إذا كنت تريد على وجه التحديد التحقق من أن الملف ليس دليلاً، فيمكنك استخدام الطريقة المنطقية isDirectory() التي توفرها فئة File في Java.
خاتمة
بحلول نهاية هذا المنشور، يجب أن تكون على دراية بكيفية التحقق من وجود ملف في Java. يمكنك كتابة برامجك الخاصة لاختبار هذه الوظيفة وفهمها. بمجرد أن تعتاد على ذلك، يمكنك استكشاف طرق أخرى للتحقق من وجود ملف (على سبيل المثال، استخدام الروابط الرمزية أو فئة nio) أيضًا. حظا سعيدا والترميز سعيد! :)
المزيد من القراءة: |
---|
GO TO FULL VERSION