CodeGym /Blog Java /rawak /Bagaimana untuk Semak sama ada Fail Wujud di Java
John Squirrels
Tahap
San Francisco

Bagaimana untuk Semak sama ada Fail Wujud di Java

Diterbitkan dalam kumpulan

Mengapa kita perlu menyemak sama ada fail "wujud?"

Semasa berurusan dengan operasi fail (baca/tulis/buat/padam/kemas kini dll), ramai pemula boleh tertanya-tanya mengapa kita perlu menyemak sama ada fail wujud? Tanggapan yang sesuai untuk ini adalah, untuk mengelakkan NoSuchFileException , ia sentiasa merupakan cara yang lebih selamat untuk mengakses fail. Akibatnya, anda perlu menyemak sama ada fail wujud sebelum mengaksesnya untuk mengelakkan sebarang pengecualian masa jalan.Bagaimana untuk Semak sama ada Fail Wujud di Java - 1

Bagaimana untuk menyemak menggunakan kaedah file.exists()?

Java menyediakan kaedah boolean mudah, file.exists() yang tidak memerlukan sebarang parameter untuk menyemak fail yang berkaitan pada laluan tertentu. Apabila menyemak kewujudan fail, simpan 3 senario dalam pertimbangan.
  • Fail ditemui.
  • Fail tidak dijumpai.
  • Status fail tidak diketahui jika kebenaran tidak diberikan (atas sebab keselamatan).
Kaedah File.exists() mengembalikan " benar " jika fail ditemui. Sekiranya ia tidak dijumpai atau akses yang gagal, ia mengembalikan " palsu ".

Contoh

Mari kita lihat contoh kod mudah untuk melihat pelaksanaannya.

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());
	}
}
Pengeluaran
Adakah Fail wujud di "C:\Users\Lubaina\Documents\myNewTestFile.txt"? true Adakah Fail wujud di "C:\Users\Lubaina\Documents\myOtherTestFile.txt"? salah
Sila ambil perhatian bahawa kaedah file.exists() juga berfungsi untuk laluan " direktori ". Jika anda menyemak laluan direktori yang sah dengan kaedah ini, ia akan mengembalikan benar atau sebaliknya palsu. Untuk pemahaman yang lebih baik, anda boleh melihat blok kod berikut.

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);
	}
}
Pengeluaran
Direktori di "C:\Users\Lubaina\Documents\javaContent" wujud. Adakah sumber "C:\Users\Lubaina\Documents\javaContent" merupakan Fail? false Adakah sumber "C:\Users\Lubaina\Documents\myNewTestFile.txt" adalah Fail? benar
Seperti yang anda lihat daripada output, Direktori bernama "javaContent" telah disahkan oleh kaedah exists() . Jadi, jika anda secara khusus ingin menyemak sama ada fail bukan direktori, anda boleh menggunakan kaedah boolean isDirectory() yang disediakan oleh kelas Fail dalam Java.

Kesimpulan

Menjelang akhir siaran ini, anda mesti biasa dengan cara menyemak sama ada fail wujud dalam Java. Anda boleh menulis program anda sendiri untuk menguji dan memahami fungsi ini. Setelah anda selesa dengannya, anda boleh meneroka cara lain untuk menyemak kehadiran Fail (cth, menggunakan pautan simbolik atau kelas nio) juga. Semoga berjaya dan selamat mengekod! :)

Bacaan lanjut:

Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION