CodeGym /Java Blog /Random-IT /Come verificare se un file esiste in Java
John Squirrels
Livello 41
San Francisco

Come verificare se un file esiste in Java

Pubblicato nel gruppo Random-IT

Perché dobbiamo controllare se un file "esiste?"

Mentre si occupano delle operazioni sui file (lettura/scrittura/creazione/cancellazione/aggiornamento ecc.), molti neofiti possono chiedersi perché dobbiamo anche controllare se esiste un file? La risposta appropriata a questo sarebbe, al fine di evitare NoSuchFileException , è sempre un modo più sicuro per accedere a un file. Di conseguenza, è necessario verificare se esiste un file prima di accedervi per evitare eventuali eccezioni di runtime.Come verificare se un file esiste in Java - 1

Come controllare usando il metodo file.exists()?

Java fornisce un semplice metodo booleano, file.exists() che non richiede alcun parametro per controllare il file rilevante su un determinato percorso. Quando si verifica l'esistenza di un file, tenere in considerazione 3 scenari.
  • Il file è stato trovato.
  • Il file non è stato trovato.
  • Lo stato del file è sconosciuto se le autorizzazioni non sono concesse (per motivi di sicurezza).
Il metodo File.exists() restituisce " true " se il file viene trovato. Nel caso in cui non venga trovato o l'accesso non sia riuscito, restituisce " false ".

Esempio

Diamo un'occhiata a un semplice esempio di codice per vedere l'implementazione.

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());
	}
}
Produzione
Il file esiste in "C:\Users\Lubaina\Documents\myNewTestFile.txt"? true Il file esiste in "C:\Users\Lubaina\Documents\myOtherTestFile.txt"? falso
Si prega di notare che il metodo file.exists() funziona anche per i percorsi di " directory ". Se controlli un percorso di directory valido con questo metodo, restituirà true oppure false altrimenti. Per una migliore comprensione, puoi dare un'occhiata al seguente blocco di codice.

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);
	}
}
Produzione
Esiste una directory in "C:\Users\Lubaina\Documents\javaContent". La risorsa "C:\Users\Lubaina\Documents\javaContent" è un File? false La risorsa "C:\Users\Lubaina\Documents\myNewTestFile.txt" è un file? VERO
Come puoi vedere dall'output, la directory denominata "javaContent" è stata convalidata dal metodo exists() . Quindi, se vuoi specificamente verificare che un file non sia una directory, puoi utilizzare il metodo booleano isDirectory() fornito dalla classe File in Java.

Conclusione

Alla fine di questo post, devi avere familiarità con come verificare se un file esiste in Java. Puoi scrivere i tuoi programmi per testare e comprendere questa funzionalità. Una volta che ti senti a tuo agio, puoi esplorare anche altri modi per verificare la presenza di un file (ad esempio, utilizzando collegamenti simbolici o classe nio). Buona fortuna e buona programmazione! :)

Altre letture:

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