|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jan 2006
Messaggi: 65
|
[Java]Scansione cartella
Salve qualcuno di voi ha percaso idea di come si potrebbe fare una specie di "search" per i file contenuti in una cartella passandogli la directory di destinazione dove controllare se sono presenti appunto dei file...e successivamente tirare per ognuno di essi il nome.Qualcuno di voi sabrebbe darmi un indicazione..o anche dirmi quale classe utilizzare.Thanks for all
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Puoi prendere il percorso della cartella e darlo in pasto ad un java.io.File. A quel punto ti fai dire qualsi siano i file contenuti in quella cartella. Aggiungi una lista, un ciclo, ghiaccio e una punta di martini, agiti (mai mescolare!) e il gioco è fatto
![]() Codice:
public void scan(File dir) throws IllegalArgumentException { if(dir == null) throw new IllegalArgumentException("e che scanno?"); if(dir.exists() == false) throw new IllegalArgumentException("e che...2"); if(dir.isDirectory() == false) throw new IllegalArgumentException("e be'..."); ArrayList<File> cache = new ArrayList<File>(); cache.addAll(Arrays.asList(dir.listFiles())); for(int k = 0; k < cache.size(); k++) { File f = cache.get(k); //f è una cartella ? if(f.isDirectory()) { cache.addAll(Arrays.asList(f.listFiles())); } System.out.println(f); //tanto per fare qualcosa } } Qui sopra il candidato è "f". Potremmo cercare un file con estensione "java". Al posto di "System.out.println(f)" scriveremmo: Codice:
if(isTarget(f)) { System.out.println(f); } Codice:
private boolean isTarget(File candidate) { return candidate.getName().endsWith(".java"); } Per quanto ne so (ma mi piacerebbe essere smentito), non c'è un mezzo predefinito per determinare se per il sistema operativo un nome di file sia o meno sensibile ai caratteri maiuscoli/minuscoli. Un metodo della nonna è creare due file con lo stesso nome, uno con una lettera maiuscola e l'altro no, e vedere se i file effetivamente creati siano due oppure uno. E' molto "nonna", però ![]() Ultima modifica di PGI-Bis : 30-03-2006 alle 01:09. Motivo: ripetizione nel testo. |
![]() |
![]() |
![]() |
#3 | |
Member
Iscritto dal: Jan 2006
Messaggi: 65
|
Quote:
con "isTarget(File)" metodo ad hoc: Codice:
private boolean isTarget(File candidate) { String nome_file=(candidate.getName()).toLowerCase(); return nome_file.endsWith(".java"); } |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:17.