Pregunta ¿Cómo puedo verificar si existe un archivo en Java?


¿Cómo puedo verificar si existe un archivo antes de abrirlo para leer en Java? (equivalente a Perl's -e $filename)

Lo único pregunta similar sobre SO se ocupa de escribir el archivo y, por lo tanto, se respondió utilizando FileWriter, que obviamente no se aplica aquí.

Si es posible, preferiría que una verdadera llamada a la API devuelva verdadero / falso en lugar de "Llamar API" para abrir un archivo y atrapar cuando arroja una excepción que busca "sin archivo" en el texto ", pero puedo vivir con el último.


683
2017-11-29 20:32


origen


Respuestas:


Utilizando java.io.File:

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

1150
2017-11-29 20:35



Yo recomendaría usar isFile() en lugar de exists(). La mayoría de las veces busca verificar si la ruta apunta a un archivo, no solo que existe. Recuerda eso exists() devolverá verdadero si su ruta apunta a un directorio.

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

new File("C:/").exists() devolverá verdadero pero no le permitirá abrir y leer de él como un archivo.


379
2017-11-29 20:42



Al usar nio en 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 ambos existen y notExists devuelven falso, la existencia del archivo no se puede verificar. (tal vez no tenga derecho de acceso a este camino)

Puede verificar si la ruta es un directorio o un archivo normal.

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

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

Por favor, chequee esto Tutorial de Java SE 7.


118
2017-08-22 03:04



Usando Java 8:

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

34
2018-06-01 13:33



File f = new File(filePathString); 

Esto no creará un archivo físico. Simplemente creará un objeto de la clase Archivo. Para crear físicamente un archivo, debes crearlo explícitamente:

f.createNewFile();

Asi que f.exists() se puede usar para verificar si existe o no ese archivo.


26
2018-05-28 10:46



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

24
2017-11-30 15:03



primer golpe para "existe el archivo java" en 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



Puedes usar lo siguiente: File.exists()


14
2017-11-29 20:35