2010-09-15 14 views
5

Sto scrivendo casi di test che devono essere eseguiti in ambiente osgi, ho inserito i dati di test che sono un insieme di file nel pacchetto di test. Sono in grado di accedere ai file di dati di test utilizzando bundle.getResource che restituisce un URL da cui posso ottenere InputStream per un determinato file, ma come posso trovare l'elenco di file in una particolare cartella nel plug-in di test. In eclispe potrei usare fileLocator per fare questo.Ricerca di file e cartelle in un pacchetto OSGI

/bundle
          testdata
                one.txt
                two.txt
                three.txt
                folder1
                              file1.txt
                              file2.txt

nel bundle sopra voglio trovare tutti i file e le cartelle che sono presenti nella cartella testdata.


migliori Reards,
Keshav

risposta

-5

Resources (classi, file, corsi d'acqua, ecc) si accede dal programma di caricamento classe può essere fornito da tutto ciò. Di solito, le risorse vengono caricate da un file JAR. Ma potrebbe anche essere un database, un file system o una risorsa HTTP. Quindi, per ottenere un elenco di risorse, si dipende dalla fonte dietro il classloader. Nel caso in cui le risorse si trovino all'interno di un JAR, sarà necessario ottenere il JAR stesso e accedervi tramite ad es. java.util.zip. Dato che l'interfaccia ClassLoader non fornisce informazioni sulla fonte, devi andare in altri modi (ad esempio aggancio al framework OSGi che usi).

+3

Sbagliato !!! L'iterazione dei file zip ecc. NON è portabile in Java, Java ha un'astrazione per le risorse completamente danneggiate. È una pratica molto negativa che sfortunatamente è diffusa perché i programmi di caricamento di classi non hanno un iteratore per le loro risorse. Vedi la risposta di BJ: OSGi ha Bundle.findEntries e Bundle.getEntryPaths che ti permette di scorrere le risorse in modo portatile. –

12

Se si conosce il pacchetto di informazioni, utilizzare Bundle.findEntries o Bundle.getEntryPaths.

Problemi correlati