CodeGym /Java-blogg /Tilfeldig /Hvordan sjekke om en fil eksisterer i Java
John Squirrels
Nivå
San Francisco

Hvordan sjekke om en fil eksisterer i Java

Publisert i gruppen

Hvorfor må vi sjekke om en fil "eksisterer?"

Mens de arbeider med filoperasjoner (les/skriv/opprett/slett/oppdater osv.), kan mange nybegynnere lure på hvorfor vi i det hele tatt trenger å sjekke om en fil eksisterer? Det riktige svaret på dette ville være, for å unngå NoSuchFileException , det er alltid en tryggere måte å få tilgang til en fil. Følgelig må du sjekke om en fil eksisterer før du får tilgang til den for å unngå kjøretidsunntak.Hvordan sjekke om en fil eksisterer i Java - 1

Hvordan sjekker jeg med metoden file.exists()?

Java gir en enkel boolsk metode, file.exists() som ikke krever noen parametere for å sjekke den relevante filen på en gitt bane. Når du sjekker om det finnes en fil, bør du vurdere 3 scenarier.
  • Filen er funnet.
  • Filen ble ikke funnet.
  • Filstatusen er ukjent hvis tillatelser ikke er gitt (på grunn av sikkerhetsårsaker).
File.exists() -metoden returnerer " true " hvis filen blir funnet. I tilfelle den ikke blir funnet eller den mislykkede tilgangen, returnerer den " false ".

Eksempel

La oss ta en titt på et enkelt kodeeksempel for å se implementeringen.

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());
	}
}
Produksjon
Finnes filen på "C:\Users\Lubaina\Documents\myNewTestFile.txt"? true Finnes filen på "C:\Users\Lubaina\Documents\myOtherTestFile.txt"? falsk
Vær oppmerksom på at metoden file.exists() også fungerer for " katalog "-baner. Hvis du sjekker en gyldig katalogbane med denne metoden, vil den returnere true eller false ellers. For en bedre forståelse kan du ta en titt på følgende kodeblokk.

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);
	}
}
Produksjon
Katalog på "C:\Users\Lubaina\Documents\javaContent" finnes. Er ressursen "C:\Users\Lubaina\Documents\javaContent" en fil? false Er ressursen "C:\Users\Lubaina\Documents\myNewTestFile.txt" en fil? ekte
Som du kan se fra utdataene, har katalogen kalt "javaContent" blitt validert av exists()- metoden. Så hvis du spesifikt vil sjekke at en fil ikke er en katalog, kan du bruke den boolske metoden isDirectory() levert av File- klassen i Java.

Konklusjon

På slutten av dette innlegget må du være kjent med hvordan du sjekker om en fil finnes i Java. Du kan skrive dine egne programmer for å teste og forstå denne funksjonaliteten. Når du er komfortabel med det, kan du også utforske andre måter å sjekke tilstedeværelsen av en fil på (f.eks. ved å bruke symbolske lenker eller nio-klasse). Lykke til og god koding! :)

Mer lesing:

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