CodeGym /مدونة جافا /Random-AR /كيفية التحقق من وجود ملف في جافا
John Squirrels
مستوى
San Francisco

كيفية التحقق من وجود ملف في جافا

نشرت في المجموعة

لماذا نحتاج إلى التحقق مما إذا كان الملف "موجودًا"؟

أثناء التعامل مع عمليات الملفات (القراءة/الكتابة/الإنشاء/الحذف/التحديث وما إلى ذلك)، يمكن أن يتساءل العديد من المبتدئين لماذا نحتاج حتى إلى التحقق من وجود الملف؟ سيكون الرد المناسب على ذلك هو تجنب NoSuchFileException ، فهي دائمًا طريقة أكثر أمانًا للوصول إلى الملف. وبالتالي، تحتاج إلى التحقق من وجود الملف قبل الوصول إليه لتجنب أي استثناءات في وقت التشغيل.كيفية التحقق من وجود ملف في جافا - 1

كيفية التحقق باستخدام طريقة file.exists()؟

توفر Java طريقة منطقية بسيطة، file.exists() والتي لا تتطلب أي معلمات للتحقق من الملف ذي الصلة على مسار معين. عند التحقق من وجود ملف، ضع 3 سيناريوهات قيد الاعتبار.
  • تم العثور على الملف.
  • لم يتم العثور على الملف.
  • حالة الملف غير معروفة إذا لم يتم منح الأذونات (لأسباب أمنية).
تقوم طريقة File.exists() بإرجاع " صحيح " إذا تم العثور على الملف. وفي حالة عدم العثور عليه أو فشل الوصول إليه، فإنه يُرجع " خطأ ".

مثال

دعونا نلقي نظرة على مثال رمز بسيط لرؤية التنفيذ.
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) أيضًا. حظا سعيدا والترميز سعيد! :)

المزيد من القراءة:

تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION