CodeGym /בלוג Java /Random-HE /כיצד לבדוק אם קיים קובץ ב-Java
John Squirrels
רָמָה
San Francisco

כיצד לבדוק אם קיים קובץ ב-Java

פורסם בקבוצה

למה אנחנו צריכים לבדוק אם קובץ "קיים?"

בזמן התמודדות עם פעולות קבצים (קריאה/כתיבה/יצירה/מחיקה/עדכן וכו'), חדשים רבים יכולים לתהות מדוע אנחנו בכלל צריכים לבדוק אם קיים קובץ? התגובה המתאימה לכך תהיה, כדי למנוע NoSuchFileException , זו תמיד דרך בטוחה יותר לגשת לקובץ. כתוצאה מכך, עליך לבדוק אם קיים קובץ לפני הגישה אליו כדי למנוע חריגים בזמן ריצה.כיצד לבדוק אם קיים קובץ ב-Java - 1

כיצד לבדוק באמצעות שיטת file.exists()?

Java מספקת שיטה בוליאנית פשוטה, 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() פועלת גם עבור נתיבי " ספרייה ". אם תבדוק נתיב ספרייה חוקי בשיטה זו, הוא יחזיר 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" אומת על ידי שיטת exists() . אז אם אתה רוצה לבדוק ספציפית שקובץ אינו ספרייה, אתה יכול להשתמש בשיטה הבוליאנית isDirectory() שמסופקת על ידי המחלקה File ב-Java.

סיכום

עד סוף פוסט זה, עליך להכיר כיצד לבדוק אם קיים קובץ ב-Java. אתה יכול לכתוב תוכניות משלך כדי לבדוק ולהבין את הפונקציונליות הזו. ברגע שאתה מרגיש בנוח עם זה, אתה יכול לחקור דרכים אחרות לבדיקת נוכחות של קובץ (למשל, באמצעות קישורים סמליים או מחלקה nio). בהצלחה וקידוד שמח! :)

קריאה נוספת:

הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION