CodeGym /وبلاگ جاوا /Random-FA /نحوه بررسی وجود فایل در جاوا
John Squirrels
مرحله
San Francisco

نحوه بررسی وجود فایل در جاوا

در گروه منتشر شد

چرا باید بررسی کنیم که آیا یک فایل "وجود دارد؟"

در حالی که با عملیات فایل (خواندن/نوشتن/ایجاد/حذف/به‌روزرسانی و غیره) سروکار داریم، بسیاری از تازه‌کارها می‌توانند تعجب کنند که چرا ما حتی نیاز به بررسی وجود فایل داریم؟ پاسخ مناسب به این خواهد بود، به منظور جلوگیری از NoSuchFileException ، همیشه یک راه امن تر برای دسترسی به یک فایل است. در نتیجه، باید بررسی کنید که آیا فایلی قبل از دسترسی به آن وجود دارد تا از هرگونه استثنا در زمان اجرا جلوگیری کنید.نحوه بررسی وجود فایل در جاوا - 1

چگونه با استفاده از متد file.exists() بررسی کنیم؟

جاوا یک روش ساده بولی به نام file.exists() ارائه می دهد که برای بررسی فایل مربوطه در یک مسیر مشخص به هیچ پارامتری نیاز ندارد. هنگام بررسی وجود یک فایل، 3 سناریو را در نظر بگیرید.
  • فایل پیدا شد
  • فایل پیدا نشد
  • در صورت عدم اعطای مجوزها (به دلایل امنیتی) وضعیت فایل ناشناخته است.
متد File.exists() در صورت یافتن فایل " true " را برمی گرداند. در صورت پیدا نشدن یا دسترسی ناموفق، " false " را برمی گرداند.

مثال

بیایید نگاهی به یک مثال کد ساده بیندازیم تا پیاده سازی را ببینیم.
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" وجود دارد؟ true آیا فایل در "C:\Users\Lubaina\Documents\myOtherTestFile.txt" وجود دارد؟ نادرست
لطفاً توجه داشته باشید که متد file.exists () برای مسیرهای “ directory ” نیز کار می کند. اگر یک مسیر دایرکتوری معتبر را با این روش بررسی کنید، در غیر این صورت مقدار true یا false را برمی گرداند. برای درک بهتر، می توانید به بلوک کد زیر نگاهی بیندازید.
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" یک فایل است؟ false آیا منبع "C:\Users\Lubaina\Documents\myNewTestFile.txt" یک فایل است؟ درست است، واقعی
همانطور که در خروجی مشاهده می کنید، دایرکتوری با نام “javaContent” توسط متد ()exiset تایید شده است . بنابراین اگر به طور خاص می خواهید بررسی کنید که یک فایل دایرکتوری نیست، می توانید از روش بولی isDirectory() که توسط کلاس File در جاوا ارائه شده است استفاده کنید.

نتیجه

تا پایان این پست، باید با نحوه بررسی وجود فایل در جاوا آشنا شوید. شما می توانید برنامه های خود را برای آزمایش و درک این عملکرد بنویسید. هنگامی که با آن راحت شدید، می‌توانید راه‌های دیگر بررسی وجود یک فایل (مثلاً با استفاده از پیوندهای نمادین یا کلاس nio) را نیز کشف کنید. موفق باشید و کد نویسی شاد! :)

ادامه مطلب:

نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION