¿Cómo puedo verificar si existe un archivo, antes de abrirlo para leerlo en Java (el equivalente de Perl
-e $filename
)?
La única pregunta similar sobre SO trata con escribir el archivo y, por lo tanto, se respondió usando lo FileWriter
que obviamente no es aplicable aquí.
Si es posible, preferiría que una llamada real de la API devuelva verdadero / falso en lugar de algunas "Llamar a la API para abrir un archivo y capturar cuando arroja una excepción que verifica si no hay" archivo "en el texto", pero puedo vivir con el último.
java
file-io
io
file-exists
DVK
fuente
fuente
canRead
,canWrite
ycanExecute
para comprobar que .Respuestas:
Utilizando
java.io.File
:fuente
if(f.isFile())
lugar.Recomendaría usar en
isFile()
lugar deexists()
. La mayoría de las veces está buscando verificar si la ruta apunta a un archivo, no solo que existe. Recuerde queexists()
devolverá verdadero si su ruta apunta a un directorio.new File("C:/").exists()
devolverá verdadero pero no le permitirá abrirlo y leerlo como un archivo.fuente
/path
,new File("file.txt").exists()
volverátrue
si la ruta completa correcta es/path/to/file.txt
, la respuesta es un gran no (a menos que/path/file.txt
exista otro archivo ).Al usar nio en Java SE 7,
Si ambos
exists
ynotExists
devuelven falso, la existencia del archivo no se puede verificar. (tal vez no hay acceso a esta ruta)Puede verificar si
path
es un directorio o archivo normal.Consulte este tutorial de Java SE 7 .
fuente
java.nio.file.Files.exists()
es mucho más rápido quejava.io.File.exists()
(desde mi pequeño punto de referencia en la única computadora que probé: Windows Server 2012 con Java 1.7.0_45 x64).java.nio.file.Files.exists()
fui 5 veces MÁS LENTO quejava.io.File.exists
. (Win7 Java 1.7.0_79 - x86)Usando Java 8:
fuente
Files.exists()
Toma dos argumentos. Por lo general, querrás algo asíFiles.exists(path, LinkOption.NOFOLLOW_LINKS )
.Esto no creará un archivo físico. Solo creará un objeto de la clase File. Para crear físicamente un archivo, debe crearlo explícitamente:
Por
f.exists()
lo tanto, se puede utilizar para verificar si dicho archivo existe o no.fuente
fuente
-e
también se asegura de que la aplicación "pueda leer" el archivo?Hay múltiples formas de lograr esto.
En caso de solo por existencia. Podría ser un archivo o un directorio.
Verificar archivo
Verifique el directorio.
Java 7 way.
fuente
Puedes usar lo siguiente:
File.exists()
fuente
primer hit para "el archivo java existe" en google:
fuente
String.valueOf()
, que maneja nulosNo lo hagas Simplemente tome el
FileNotFoundException.
El sistema de archivos tiene que probar si el archivo existe de todos modos. No tiene sentido hacer todo eso dos veces, y varias razones para no hacerlo, como:No intentes adivinar el sistema. Lo sabe Y no intentes predecir el futuro. En general, la mejor manera de probar si hay algún recurso disponible es simplemente intentar usarlo.
fuente
Para mí, una combinación de la respuesta aceptada por Sean AO Harney y el comentario resultante de Cort3z parece ser la mejor solución.
Usó el siguiente fragmento:
Espero que esto pueda ayudar a alguien.
fuente
Sé que llego un poco tarde en este hilo. Sin embargo, aquí está mi respuesta, válida desde Java 7 en adelante.
El siguiente fragmento
es perfectamente satisfactorio, porque el método
isRegularFile
devuelvefalse
si el archivo no existe. Por lo tanto, no es necesario verificar siFiles.exists(...)
.Tenga en cuenta que otros parámetros son opciones que indican cómo se deben manejar los enlaces. Por defecto, se siguen los enlaces simbólicos.
De la documentación de Java Oracle
fuente
Files.notExists
,Files.isDirectory
yFiles.isRegularFile.
la mejor alternativa a esto es:path.toFile().exists()
También vale la pena familiarizarse con Commons FileUtils https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/FileUtils.html Esto tiene métodos adicionales para administrar archivos y a menudo mejor que JDK.
fuente
Por ejemplo, si tiene un directorio de archivos y desea verificar si existe
exists
devolverá falso si el archivo no existefuente: https://alvinalexander.com/java/java-file-exists-directory-exists
fuente
Ejemplo simple con buenas prácticas de codificación y cubriendo todos los casos:
Referencia y más ejemplos en
https://zgrepcode.com/examples/java/java/nio/file/filealreadyexistsexception-implementations
fuente
Si desea buscar un
File
en un directoriodir
y verifica el
check
resultadofuente
hará el truco
fuente
No use el constructor de archivos con String.
¡Esto puede no funcionar!
En lugar de este uso URI:
fuente
File.exists()
para verificar si existe un archivo, devolverá un valor booleano para indicar el estado de la operación de verificación; verdadero si el archivo existe; falso si no existe.fuente
Puede usar el siguiente código para verificar:
fuente
Puedes hacerlo de esta manera
fuente
File.is Exist()
oFiles.isRegularFile()
en JDK 8Hay un propósito específico para diseñar estos métodos. No podemos decir que use a alguien para verificar si el archivo existe o no.
fuente
Para verificar si existe un archivo, simplemente importe la biblioteca java.io. *
Fuente: http://newsdivariotipo.altervista.org/java-come-controllare-se-un-file-esiste/
fuente