Ricerca file senza conoscere URL

di il
4 risposte

Ricerca file senza conoscere URL

Ciao a Tutti,
qualcuno saprebbe dirmi in che modo si potrebbe implementare un metodo che sia in grado di eseguire una ricerca file/Directory sul FileSystem del PC senza conoscere a priori dove si trova il file in questione?
Per esempio mi servirebbe poter localizzare tutti i file che si trovano sul mio HD che si chiamano: "Pippo.txt".
Occorre esplorare le cartelle ad una ad una o esistono soluzioni già collaudate più rapide?
Grazie in anticipo per le risposte

Ciao
Fulvio

4 Risposte

  • Re: Ricerca file senza conoscere URL

    Ricerca ricorsiva a partire dalla root del disco (o dei dei dischi) odaella directory di interesse.

    PROBLEMA: se trovi DUE O PIU' file con lo stesso nome?

    Se non sai che cosa e' una funzione ricorsiva allora
    1) STUDI, oppure
    2) NON hai gli strumenti per implementare l'algoritmo
  • Re: Ricerca file senza conoscere URL

    Intanto le URL non c'entrano ...

    Comunque, sì, devi esaminare tutte le cartelle, magari ricorsivamente ... non c'è alternativa se non sai dove sta un file ... e avrai un bel po' di problemi anche ...
  • Re: Ricerca file senza conoscere URL

    Funzione Ricorsiva?
    Molto bene!

    Grazie ad entrambi
    Fulvio
  • Re: Ricerca file senza conoscere URL

    Ciao,
    non so se hai risolto il tuo problema ma anche per altri che possono avere un problema simile posto questo metodo:
    	
    	// ottiene ricorsivamente la lista di tutte le cartelle (e sottocartelle) data in input una cartella di base
    	private static List<File> listFolders(String folderName){
    		File directory = new File(folderName);
    	    
    	    File[] fList = directory.listFiles(new FileFilter() {
    			
    			@Override
    			public boolean accept(File file) {
    				return file.isDirectory();
    			}
    		});
    	    
    	    List<File> resultList = new ArrayList<File>(Arrays.asList(fList));
    	    for (File file : fList) {
    	       	resultList.addAll(listFolders(file.getAbsolutePath()));
    	    }
    	    
    	    return resultList;
    	}
    
    Semplicemente ritorno da una cartella radice una lista di sottocartelle (sottoforma di List<File>), richiamandosi ricorsivamente per le cartelle trovate all'interno della cartella arrivata come parametro.
    Da notare il metodo listFiles della classe File che premette di creare un FileFilter per customizzare i tipi di file da estrarre (in questo caso solo le cartelle, ma poteva esserci benissimo il controllo sul nome del file).

    Spero sia utile a qualcuno.

    Ciao
Devi accedere o registrarti per scrivere nel forum
4 risposte