sto cercando di capire come utilizzare Commons apache io DirectoryWalker. È abbastanza facile capire come sottoclasse DirectoryWalker. Ma come inizi ad eseguirlo su una particolare directory?utilizzando DirectoryWalker
risposta
sembra che la sottoclasse dovrebbe fornire un metodo pubblico che chiama passeggiata().
Giusto per espandere su questa risposta in quanto ero perplesso in un primo momento di come utilizzare la classe come bene e questa domanda è venuta su google quando mi guardavo intorno. Questo è solo un esempio di come l'ho usato (meno alcune cose):
public class FindConfigFilesDirectoryWalker extends DirectoryWalker {
private static String rootFolder = "/xml_files";
private Logger log = Logger.getLogger(getClass());
private static IOFileFilter filter = FileFilterUtils.andFileFilter(FileFilterUtils.fileFileFilter(),
FileFilterUtils.suffixFileFilter("xml"));
public FeedFileDirectoryWalker() {
super(filter, -1);
}
@SuppressWarnings("unchecked")
@Override
protected void handleFile(final File file, final int depth, final Collection results) throws IOException {
log.debug("Found file: " + file.getAbsolutePath());
results.add(file);
}
public List<File> getFiles() {
List<File> files = new ArrayList<File>();
URL url = getClass().getResource(rootFolder);
if (url == null) {
log.warn("Unable to find root folder of configuration files!");
return files;
}
File directory = new File(url.getFile());
try {
walk(directory, files);
}
catch (IOException e) {
log.error("Problem finding configuration files!", e);
}
return files;
}
}
E poi si sarebbe solo invocare tramite il metodo pubblico si è creato, passando tutti gli argomenti che si può desiderare:
List<File> files = new FindConfigFilesDirectoryWalker().getFiles();
Nota che getResource() richiede che la cartella delle risorse si trovi nel percorso di generazione. È ulteriormente descritto qui: http://lj4newbies.blogspot.com/2008/03/using-classgetresource-load-resource.html – dbasch
Tutto quello che volevo era una raccolta di directory da iterazioni. Questa sottoclasse ha fornito ciò di cui avevo bisogno:
public class UDirWalker extends DirectoryWalker {
public UDirWalker() {
super();
}
public ArrayList<File> getDirectories(File startDirectory) throws IOException {
ArrayList<File> dirs = new ArrayList<File>();
walk(startDirectory, dirs);
return dirs;
}
@Override
protected boolean handleDirectory(File directory, int depth,
Collection results) {
results.add(directory);
return true;
}
}
- 1. Android utilizzando viewPager vs utilizzando tabhost
- 2. Test unità SparseArray utilizzando JUnit (utilizzando JVM)
- 3. utilizzando ensureIndex nello schema mongodb utilizzando mangusta
- 4. utilizzando namespace
- 5. Utilizzando EclipseLink
- 6. utilizzando l'ottava
- 7. creare un dizionario utilizzando 2 elenchi utilizzando LINQ
- 8. SMTP tramite Exchange utilizzando l'autenticazione Windows integrata (NTLM) utilizzando Python
- 9. BPMF modificato in PyMC3 utilizzando priori `LKJCorr`: PositiveDefiniteError utilizzando` NUTS`
- 10. Utilizzando un puntatore dopo aver liberato utilizzando free() problemi
- 11. come ottenere percorso risorsa utilizzando sottopercorso Utilizzando NSBundle
- 12. Catturare video/immagine utilizzando la webcam dell'utente utilizzando GWT
- 13. utilizzando LINQ con join utilizzando due dove su due tavoli
- 14. Utilizzando $ o clausola pymongo
- 15. http_referer perso utilizzando https
- 16. Utilizzando XPath in ElementTree
- 17. Utilizzando SDL_INIT_JOYSTICK senza SDL_INIT_VIDEO
- 18. Crittografia utilizzando Rijndael
- 19. Utilizzando Page.User.Identity.Name in MVC3
- 20. : URL simile utilizzando JavaScript
- 21. convalida xsd utilizzando schematron
- 22. oauth google utilizzando python
- 23. utilizzando git per immagini
- 24. Come avvisare utilizzando jQuery
- 25. Crea directory utilizzando Nant
- 26. Schema form utilizzando Aurelia
- 27. Utilizzando LogManager.GetLogger con Unity
- 28. Utilizzando COUNT in group_concat
- 29. Decodifica audio utilizzando MediaStreamSource
- 30. Calling Javascript utilizzando UIWebView
argh !!! ovviamente, come mi è mancato @ # $ @ # $ @ # visto? –
Non ti odio quando succede>. < – Nippysaurus
in realtà sembra che non si dispone di fornire un metodo che chiama passeggiata. un'altra classe può chiamare walk() dall'esterno. –