CodeGym /Java blog /Tilfældig /Sådan kontrolleres, om en fil findes i Java
John Squirrels
Niveau
San Francisco

Sådan kontrolleres, om en fil findes i Java

Udgivet i gruppen

Hvorfor skal vi kontrollere, om en fil "eksisterer?"

Mens de beskæftiger sig med filhandlinger (læs/skriv/opret/slet/opdater osv.), kan mange nybegyndere undre sig over, hvorfor skal vi overhovedet tjekke, om en fil eksisterer? Det passende svar på dette ville være, for at undgå NoSuchFileException , det er altid en sikrere måde at få adgang til en fil. Derfor skal du kontrollere, om der findes en fil, før du får adgang til den for at undgå runtime-undtagelser.Sådan kontrolleres om en fil findes i Java - 1

Hvordan kontrollerer man ved hjælp af metoden file.exists()?

Java giver en simpel boolesk metode, file.exists() , der ikke kræver nogen parametre for at kontrollere den relevante fil på en given sti. Når du kontrollerer, om der findes en fil, skal du holde 3 scenarier under overvejelse.
  • Filen er fundet.
  • Filen blev ikke fundet.
  • Filstatus er ukendt, hvis tilladelser ikke er givet (på grund af sikkerhedsmæssige årsager).
File.exists() metoden returnerer " sand ", hvis filen er fundet. I tilfælde af at den ikke findes eller den mislykkede adgang, returnerer den " false ".

Eksempel

Lad os se på et simpelt kodeeksempel for at 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());
	}
}
Produktion
Findes filen på "C:\Users\Lubaina\Documents\myNewTestFile.txt"? true Findes filen på "C:\Users\Lubaina\Documents\myOtherTestFile.txt"? falsk
Bemærk venligst, at metoden file.exists() også virker for " mappe "-stier. Hvis du tjekker en gyldig mappesti med denne metode, vil den returnere true eller på anden måde falsk. For en bedre forståelse kan du tage et kig på den følgende kodeblok.

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);
	}
}
Produktion
Mappen på "C:\Users\Lubaina\Documents\javaContent" findes. Er ressourcen "C:\Users\Lubaina\Documents\javaContent" en fil? false Er ressourcen "C:\Users\Lubaina\Documents\myNewTestFile.txt" en fil? rigtigt
Som du kan se fra outputtet, er mappen med navnet "javaContent" blevet valideret af exists()- metoden. Så hvis du specifikt vil kontrollere, at en fil ikke er en mappe, kan du bruge den boolske metode isDirectory() fra klassen File i Java.

Konklusion

Ved slutningen af ​​dette indlæg skal du være bekendt med, hvordan du kontrollerer, om en fil findes i Java. Du kan skrive dine egne programmer for at teste og forstå denne funktionalitet. Når du er fortrolig med det, kan du også udforske andre måder at kontrollere tilstedeværelsen af ​​en fil på (f.eks. ved hjælp af symbolske links eller nio-klasse). Held og lykke og god kodning! :)

Mere læsning:

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