Saber si existe un fichero con Java

09/Feb/2007 Java , , 28 Comentarios

Por nuestro bien, cuando estamos trabajando con ficheros, deberíamos de validar la existencia o no del fichero o directorio con el que vamos a trabajar. Ahora, que hay mucho lanzado en esta vida, que puede pensar que que más da.

Claro, que si instanciamos la clase File, en Java, con un fichero que no existe y por ejemplo, intentamos recuperar el tamaño del mismo, no nos vamos a llevar ninguna desagradable sorpresa de que salte una excepción y nos desmonte el "chiringuito".

Pero, como más vale prevenir que curar, en primer lugar instanciaremos la clase File con el path que queramos investigar:

  1. String sFichero = "c:\misficheros\fichero.txt";
  2. File fichero = new File(sFichero);

Solo nos quedará invocar al método exits() para conocer si existe o no el fichero instanciado:

  1. if (fichero.exists())
  2. System.out.println("El fichero " + sFichero + " existe");
  3. else
  4. System.out.println("Pues va a ser que no");

Vídeos sobre Java IO


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

28 comentarios en “Saber si existe un fichero con Java”

Víctor Cuervo

ABRAHAM MENDOZA BARRERA

La clase Principal es algo tradicional, que no tiene atributos ni constructor,
únicamente el método main. Cuando en un proyecto existe una clase que
tiene un método con este perfil, es el que se llama para comenzar la ejecución.
Como parámetros este método recibe un array de Strings. Esta información tiene
interés cuando el programa es ejecutado desde la línea de comandos con parámetros.

la primera línea se declaran los objetos z y w. En las dos siguientes líneas
se inicializan los objetos llamando al constructor

Tipos de recursos
Según la carpeta que utilicemos el recurso creado será de un tipo específico.
Por ejemplo: Ficheros en bitmap, Ficheros XML con los Layouts usados en la aplicación.
Ficheros XML con la definición de menús, Fichero XML que permiten definir una animaciones,
Ficheros XML que permiten modificar las propiedades de un objeto a lo largo del tiempo, y
Otros ficheros XML, como los ficheros de preferencias.

Mediante la clase File podremos listar de forma sencilla el contenido de un directorio.
Lo primero que tendremos que hacer es crear un objeto de tipo File con el nombre del
directorio a a listar.

String sDirectorio = “c:\\datos”;
File f = new File(sDirectorio);

Utilizaremos el método .exists() para comprobar que el directorio existe.

if (f.exists()){ // Directorio existe }
else { //Directorio no existe }

Una vez pasada esta validación utilizamos el método .listFiles. Este método devuelve todos los ficheros asociados al directorio en un array de Files. Es por ello que solo nos quedará recorrer el array e ir mostrando el nombre de lo ficheros y directorios que componen nuestro directorio.

File[] ficheros = f.listFiles();
for (int x=0;x<ficheros.length;x++){
System.out.println(ficheros[x].getName());
}

Víctor Cuervo

julio

Gracias camarada me ha servido mucho

Víctor Cuervo

Víctor Cuervo

Julio, Nos alegra un montón que te haya servido. 😀

Víctor Cuervo

jan

bien dicho, bien explicado, para los que usamos los archivos .properties es muy util, por que si intentas recuperar algo y el fichero no existe da excepcion

Víctor Cuervo

Víctor Cuervo

Cierto @Jan es primordial si estás utilizando Properties. Muy buen punto. 😀

Víctor Cuervo

Víctor Cuervo

Gracias Victor

Víctor Cuervo

Miquel

Muxas gracias

Víctor Cuervo

Selene

Y para meterlo en un ciclo que me vuelva a pedir el nombre dle archivo?

Víctor Cuervo

Víctor Cuervo

@Joan,

Parece que estaba fallando la herramienta que mostraba el código fuente en la página. El correcto. Solo son dos barras.

Muchas gracias por avisar.

Víctor Cuervo

Joan

mi código es este y nada….

public static void creaFichero(){

File fichero = new File(“c:\\casa\\fichero.txt”);

}

Víctor Cuervo

Joan

String sFichero = “c:\\\misficheros\\\fichero.txt”;

Por qué los pones con 3 barras?? En mi BlueJ me da error, por poner las 3….
Si pongo 2, tampoco me crea el fichero, elaguien sabe porque? le pongo la ruta bien y nada…

Víctor Cuervo

Víctor Cuervo

@emi,

¿Cómo te podemos ayudar? ¿Qué andas buscando?

Víctor Cuervo

emi

pues no encontre mucho

Víctor Cuervo

Víctor Cuervo

@Hector,

Ya hemos publicado la solución a tu problema en http://lineadecodigo.com/java/evitar-que-un-programa-java-se-cargue-dos-veces/

Espero que te sirva de ayuda. 😀

Víctor Cuervo

Víctor Cuervo

@Hector,

También puedes pedir ayuda en nuestros foros.
http://www.dudasprogramacion.com/forum/java-basico

Nosotros vamos a ver si podemos escribir un artículo con este tema.

Víctor Cuervo

Héctor

Muy buen aporte.

Me podrían ayudar, quiero validar si mi aplicación en java ya se encuentra abierta o en ejecución, esto por si el usuario final se emociona dando doble clic o enter a mi aplicación y no ejecute mas de una ves la aplicación, se los agradecería, gracias por su atención

Víctor Cuervo

Víctor Cuervo

@Daniel,

Un ejemplo con Apache Commons para conectarte a un FTP sería:

import org.apache.commons.net.ftp.FTPClient;
import java.io.IOException;

public class FtpConnectDemo {
  public static void main(String[] args) {
    FTPClient client = new FTPClient();

    client.connect("ftp.domain.com");
    boolean login = client.login("admin", "secret");

    if (login) {
      System.out.println("Login success...");
      boolean logout = client.logout();
      if (logout) {
        System.out.println("Logout from FTP server...");
      }
    } else {
      System.out.println("Login fail...");
    }
    client.disconnect();
  }
}
Víctor Cuervo

Daniel

Genial! Saben de algo parecido pero para un archivo que se encuentra en un directorio remoto con FTP?

Víctor Cuervo

Jorge

Muchas gracias me gusta el código!!!

Víctor Cuervo

Gezzer

Grax, es lo que buscaba !!!

Víctor Cuervo

Juanjo

usa
String Directorio=System.getProperty(“user.dir”);
eso te dara la ruta de ejecución

Víctor Cuervo

JsLs

Muy bien !!! quisiera saber como un programa java puede saber desde que ubicacion se esta ejecutando … me refiero al jar … EJM:
si mi jar esta en c:\PROGRAMA\ejecutable.jar
al ejecutar el programa en una ventana me slga usted ejecuto el programa desde la ubicacion ….gracias estuvo bueno!!!!

Víctor Cuervo

El Mazateco.com

Muy bueno.. jalo a la primera
Funcionando.

Víctor Cuervo

Johse

Muchas gracias por ayudar.
Me marcaba el siguiente error:

Cannot find Symbol: File

Agregando import java.io.*; se soluciona.

Víctor Cuervo

panshioooo

oiegan gracias q buen trabajo q parote hee buen pedo kamarada nos bmos !!!

Víctor Cuervo

maria

Hola,

Me gustaria saber si exite alguna función en java que me lea ficheros de un ruta que yo le diga sin espeficar el número de ficheros que existe en el directorio.

Muchas gracias!!!

Víctor Cuervo

Oscar López

Muy bueno…
Yo lo he metido en una JSP para que me diga si un doc. exista o no y me ha funcionado A LA PRIMERA!!!! 🙂

Muchas gracias

Víctor Cuervo

Harley

Wena compadre gracias justo lo que andaba buscando

Se Agradeco por montones

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*