
Originariamente inviata da
schumy2000
Che confusione.
Io al posto tuo semplicemente avrei messo i documenti sotto un package (es. initdocuments) e usato la funzione fatta prima per le immagini.
codice:
package initdocuments;
import java.io.InputStream;
public class Resources {
private Resources() {}
public static InputStream getFileAsStream(String name) {
return AppResources.class.getResourceAsStream(name);
}
}
Già che se tu avessi fatto una gestione più intelligente dei package ti saresti risparmiato di fare un'altra classe.
Invece di fare il package "immagini"(
http://forum.html.it/forum/showthrea...adid=2924734#3), avresti potuto fare package resource e fatti un sotto package con immagini e l'altra con document e poi scrivere semplicemente nel recupero delle immagini o dei documenti:
Resource.getIconURL("img/immagine.jpg")
oppure
Resource.getFileAsStream("doc/Asia.txt")
Evitandoti tutti sti problemi di incastramento dei path.
Ciao.
Ciao schumy, purtroppo la cartella "dirIniziale" non è proprio come la cartella immagini che contiene solo file .jpg .png o .gif.
Questa cartella contiene altre sottocartelle di cui faccio uso differente, questa contiene altre 2 sottocartelle:
"Africa-Asia" e "Europe" che a loro volta contengono entrambe le sottodirectory delle città, che a loro volta contengono altre due sottocartelle , che a loro volta contengono file .txt.
Ecco alcuni utilizzi che ne faccio nel mio codice:
codice:
File dir = new File("dirIniziale\\Africa-Asia");
DefaultComboBoxModel modello = new DefaultComboBoxModel();
for (File f : dir.listFiles()) {
modello.addElement(new FileItem(f));
}
menuCitta.setModel(modello);
per popolare la JComboBox con i nomi delle città di "Africa-Asia" (nomi che vengono presi dai nomi delle sue sottodirectory di 1° ordine)
codice:
File dir = new File("dirIniziale\\Europe");
DefaultComboBoxModel modello = new DefaultComboBoxModel();
for (File f : dir.listFiles()) {
modello.addElement(new FileItem(f));
}
menuCitta.setModel(modello);
per popolare la JComboBox con i nomi delle città di "Europe"
in altre parti del codice vado ad utilizzarla così:
codice:
File dir = new File("dirIniziale\\" + pathname.getContinente() + File.separator + pathname.getCitta());
fileIrr = (dir + File.separator + pathname.getData() + File.separator + "Radiation.txt");
ecc..
Come vedi non si tratta solo di estrarre i file come per il package immagini..credo che la situazione sia un pò differento , no?