Ricerca file senza conoscere URL

di fulviot66 il
4 risposte
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

  • 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
  • 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 ...
  • Funzione Ricorsiva?
    Molto bene!

    Grazie ad entrambi
    Fulvio
  • 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