Java - buscar un archivo en el disco duro

   
Vista:

buscar un archivo en el disco duro

Publicado por Guillermo (7 intervenciones) el 06/01/2015 06:46:42
por favor compañeros, por favor ayúdenme con ésto, tengo un par de meses con java y los requerimientos del proyecto son tales qué necesito hacer lo siguiente:

- buscar y encontrar un archivo con un determinado nombre en alguna unidad o carpeta del disco duro.
- cuando lo encuentre, rescatar su ruta de acceso al archivo, mostrar su ubicación y salir del programa.

si alguien de buena voluntad pudiera arreglarme el código, he visto cientos de cosas, tengo la pelicula +/- clara, pero me falta mucho.

se los adjunto:

suponiendo que "directorio" viene con "c:\\":
la idea de "tecla" es hacer una pausa cuando encuentro lo que busco.

public void listarDirectorio(File directorio)

{

String nombre = "mysql.exe";
File buscado = new File(nombre);

Scanner leer = new Scanner(System.in);

String tecla;

//String nombre = null;

if (directorio.exists()){
File ficheros[] = directorio.listFiles();
File encontrado[] = directorio.listFiles();
if(ficheros != null)
{
for(int i = 0; i < ficheros.length ; i++)
{
if(ficheros[i].isDirectory())
{
System.out.println("El directorio es: " + ficheros[i].getAbsolutePath()
+ "\\" + ficheros[i].getName());
listarDirectorio(ficheros[i]);
}
else
{
if (ficheros[i].isFile()){
System.out.println("El archivo es: "
+ ficheros[i].getName());
if(ficheros[i].getName() == nombre){
System.out.println("ENCONTRADO....");
tecla = leer.next();
System.exit(0);
}
}
}

}
}
else{
System.out.println("el directorio no existe.");
}

}
}


Muchas Gracias....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder

buscar un archivo en el disco duro

Publicado por Thanatos (69 intervenciones) el 06/01/2015 09:39:36
No entendí muy bien la idea de la "pausa", pero espero que este código ayude a aclarar tus ideas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.util.Scanner;
import java.io.File;
 
public class BuscarFichero {
 
    public static void main (String[] args) {
        BuscarFichero objBuscarFichero = new BuscarFichero();
        Scanner entrada = new Scanner(System.in);
        String fichero = "";
        String directorio = "";
 
        System.out.print ("Ingrese el nombre del fichero:\nfichero = " );
        fichero = entrada.next();
        System.out.print ("\nDirectorio de inicio de la busqueda:\ndirectorio = ");
        directorio = entrada.next();
        System.out.println();
        objBuscarFichero.buscar (fichero, new File(directorio));
    }
 
    public void buscar (String argFichero, File argFile) {
        File[] lista = argFile.listFiles();
 
        if (lista != null) {
            for (File elemento : lista) {
                if (elemento.isDirectory()) {
                    buscar (argFichero, elemento);
                } else if (argFichero.equalsIgnoreCase(elemento.getName())) {
                    System.out.println (elemento.getParentFile());
                }
            }
        }
    }
}

Si lo que quieres es que el programa muestre sólo la ruta, sin incluir el nombre del fichero, modifica esta linea:
1
System.out.println (elemento.getAbsoluteFile());

Por esta otra:
1
System.out.println (elemento.getParentFile());

Para el ejemplo de búsqueda que publicaste, los datos de entrada serían:

fichero = mysql.exe
directorio = c:\

Espero que te sirva...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

buscar un archivo en el disco duro

Publicado por Guillermo (7 intervenciones) el 06/01/2015 22:28:07
muchas gracias compañero, es justo lo que necesitaba... eres un genio..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

buscar un archivo en el disco duro

Publicado por luis (1 intervención) el 20/07/2015 21:46:25
estoy trabajando en algo parecido y necesito guardar la localización del fichero en un string, intente hacerlo con apache common IO pero me devuelve un valor null, ¿como podría hacerlo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar