Question Comment vérifier si un fichier existe en Java?


Comment puis-je vérifier si un fichier existe, avant de l'ouvrir pour la lecture en Java? (équivalent de Perl's -e $filename).

Le seul question similaire sur SO traite de l'écriture du fichier et a donc été répondu en utilisant FileWriter qui n'est évidemment pas applicable ici.

Si possible, je préférerais un vrai appel d'API renvoyant vrai / faux par opposition à "Appeler API pour ouvrir un fichier et attraper quand il lance une exception que vous vérifiez pour 'aucun fichier' dans le texte", mais je peux vivre avec le dernier.


683
2017-11-29 20:32


origine


Réponses:


En utilisant java.io.File:

File f = new File(filePathString);
if(f.exists() && !f.isDirectory()) { 
    // do something
}

1150
2017-11-29 20:35



Je recommanderais d'utiliser isFile() au lieu de exists(). La plupart du temps vous cherchez à vérifier si le chemin pointe vers un fichier non seulement qu'il existe. Souviens toi que exists() retournera vrai si votre chemin pointe vers un répertoire.

new File("path/to/file.txt").isFile();

new File("C:/").exists() retournera vrai mais ne vous permettra pas d'ouvrir et de lire à partir de ce fichier.


379
2017-11-29 20:42



En utilisant nio dans Java SE 7,

import java.nio.file.*;

Path path = Paths.get(filePathString);

if (Files.exists(path)) {
  // file exist
}

if (Files.notExists(path)) {
  // file is not exist
}

Si les deux existent et notExists renvoie false, l'existence du fichier ne peut pas être vérifiée. (peut-être pas d'accès à ce chemin)

Vous pouvez vérifier si le chemin est un répertoire ou un fichier régulier.

if (Files.isDirectory(path)) {
  // path is directory
}

if (Files.isRegularFile(path)) {
  // path is regular file
}

S'il te plaît, vérifie cela Tutoriel Java SE 7.


118
2017-08-22 03:04



En utilisant Java 8:

if(Files.exists(Paths.get(filePathString))) { 
    // do something
}

34
2018-06-01 13:33



File f = new File(filePathString); 

Cela ne créera pas un fichier physique. Je vais juste créer un objet de la classe File. Pour créer physiquement un fichier, vous devez le créer explicitement:

f.createNewFile();

Alors f.exists() peut être utilisé pour vérifier si un tel fichier existe ou non.


26
2018-05-28 10:46



f.isFile() && f.canRead()

24
2017-11-30 15:03



premier hit pour "fichier java existe" sur google:

import java.io.*;

public class FileTest {
    public static void main(String args[]) {
        File f = new File(args[0]);
        System.out.println(f + (f.exists()? " is found " : " is missing "));
    }
}

15
2017-11-29 20:36



Vous pouvez utiliser ce qui suit: File.exists()


14
2017-11-29 20:35