vacio saber metodo existe esta directorio crear como archivo abierto java file-io io

saber - ¿Cómo compruebo si existe un archivo en Java?



metodo exists java (21)

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

La única pregunta similar sobre SO trata de escribir el archivo y, por lo tanto, se respondió utilizando FileWriter, que obviamente no es aplicable aquí.

Si es posible, preferiría que una llamada de la API real devuelva verdadero / falso en lugar de "Llamar a la API para abrir un archivo y capturarlo cuando se produce una excepción que verifica" no hay archivo "en el texto", pero puedo vivir con el último.


Si desea buscar un File en un directorio dir

String directoryPath = dir.getAbsolutePath() boolean check = new File(new File(directoryPath), aFile.getName()).exists();

y verifica el resultado del check


Hay múltiples maneras de lograr esto.

  1. En caso de ser solo por la existencia. Podría ser un archivo o un directorio.

    new File("/path/to/file").exists();

  2. Comprobar el archivo

    File f = new File("/path/to/file"); if(f.exists() && f.isFile()) {}

  3. Compruebe el directorio.

    File f = new File("/path/to/file"); if(f.exists() && f.isDirectory()) {}

  4. Java 7 forma.

    Path path = Paths.get("/path/to/file"); Files.exists(path) // Existence Files.isDirectory(path) // is Directory Files.isRegularFile(path) // Regular file Files.isSymbolicLink(path) // Symbolic Link


No lo hagas Sólo captura la FileNotFoundException. El sistema de archivos tiene que probar si el archivo existe de todos modos. No tiene sentido hacer todo eso dos veces, y hay varias razones para no hacerlo, como por ejemplo:

  • doblar el codigo
  • el problema de la ventana de tiempo por el cual el archivo puede existir cuando se prueba pero no cuando se abre, o viceversa, y
  • el hecho de que, como muestra la existencia de esta pregunta, puede hacer la prueba incorrecta y obtener la respuesta incorrecta.

No trates de adivinar el sistema. Lo sabe Y no intentes predecir el futuro. En general, la mejor manera de probar si algún recurso está disponible es intentar usarlo.


No utilice el constructor de archivos con String.
Esto puede no funcionar!
En lugar de este uso URI:

File f = new File(new URI("file:///"+filePathString.replace(''//', ''/''))); if(f.exists() && !f.isDirectory()) { // to do }


Para mí, una combinación de la respuesta aceptada de Sean AO Harney y el comentario resultante de Cort3z parece ser la mejor solución.

Utiliza el siguiente fragmento de código:

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

Espero que esto pueda ayudar a alguien.




Puedes hacerlo de esta manera

import java.nio.file.Paths; String file = "myfile.sss"; if(Paths.get(file).toFile().isFile()){ //...do somethinh }


Puedes usar el siguiente código para verificar:

import java.io.File; class Test{ public static void main(String[] args){ File f = new File(args[0]); //file name will be entered by user at runtime System.out.println(f.exists()); //will print "true" if the file name given by user exists, false otherwise if(f.exists()) { //executable code; } } }


Puedes usar lo siguiente: File.exists()


Recomendaría usar isFile() lugar de exists() . La mayoría de las veces, busca comprobar si la ruta apunta a un archivo, no solo porque existe. Recuerde que 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á abrirlo y leerlo como un archivo.


Sé que estoy un poco tarde en este hilo. Sin embargo, aquí está mi respuesta, válida desde Java 7 y superior.

El siguiente fragmento

if(Files.isRegularFile(Paths.get(pathToFile))) { // do something }

es perfectamente satifactory, porque el método isRegularFile devuelve false si el archivo no existe. Por lo tanto, no es necesario comprobar si Files.exists(...) .

Tenga en cuenta que otros parámetros son opciones que indican cómo deben manejarse los enlaces. Por defecto, se siguen los enlaces simbólicos.

De la documentación de Java Oracle



Usando java.io.File :

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


Usando 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 devuelve falso, no se puede verificar la existencia del archivo. (tal vez no tenga acceso a este camino)

Puede comprobar si la ruta es directorio o archivo regular.

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

Por favor, consulte este tutorial de Java SE 7 .


Utilizando Java 8:

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


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


File.exists() para verificar si existe un archivo, devolverá un valor booleano para indicar el estado de la operación de verificación; true si el archivo existe; Falso si no existe.

File f = new File("c://test.txt"); if(f.exists()){ System.out.println("File existed"); }else{ System.out.println("File not found!"); }


File f = new File(filePathString);

Esto no creará un archivo físico. Solo creará un objeto de la clase File. Para crear físicamente un archivo tienes que crearlo explícitamente:

f.createNewFile();

Por f.exists() tanto, f.exists() se puede usar para verificar si tal archivo existe o no.


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


new File("/path/to/file").exists();

hará el truco