Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 26 su 26
  1. #21
    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.
    Ultima modifica di schumy2000; 21-04-2015 a 12:41
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  2. #22
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Quote Originariamente inviata da schumy2000 Visualizza il messaggio
    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?

  3. #23
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    Come vedi non si tratta solo di estrarre i file come per il package immagini..credo che la situazione sia un pò differento , no?
    Sì, la situazione è un po' differente rispetto a singole e semplici "risorse" (es. icone/immagini).

    Ma secondo me stai continuando a girare attorno ad un falso problema. Se nel codice vuoi fare riferimento a file o directory con una specifica relativa, che quindi di per sé è risolta rispetto alla directory corrente, allora la cosa più semplice (e che non richiede modifiche o codice extra) è stabilire e richiedere che chiunque avvii la applicazione, lo faccia avendo come directory corrente quella "giusta" per far funzionare l'applicazione.

    Se l'utente vuole lanciare "a mano" l'applicazione, saranno affari suoi assicurare questo.
    Se è avviata da un collegamento che è stato installato con un sistema di setup, la directory è appunto controllabile, cioè i collegamenti vanno creati appositamente in modo corretto.

    Tutto qui.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #24
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Sì, la situazione è un po' differente rispetto a singole e semplici "risorse" (es. icone/immagini).

    Ma secondo me stai continuando a girare attorno ad un falso problema. Se nel codice vuoi fare riferimento a file o directory con una specifica relativa, che quindi di per sé è risolta rispetto alla directory corrente, allora la cosa più semplice (e che non richiede modifiche o codice extra) è stabilire e richiedere che chiunque avvii la applicazione, lo faccia avendo come directory corrente quella "giusta" per far funzionare l'applicazione.

    Se l'utente vuole lanciare "a mano" l'applicazione, saranno affari suoi assicurare questo.
    Se è avviata da un collegamento che è stato installato con un sistema di setup, la directory è appunto controllabile, cioè i collegamenti vanno creati appositamente in modo corretto.

    Tutto qui.
    Quindi nella procedura di installazione imposto io la giusta directory dove installare tutto quanto? E se l'utente decidesse di cambiare il destination folder ??

  5. #25
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    480
    Ho risolto in maniera abbastanza semplice.
    Il tool di creazione della procedura di installazione mi permette di inserire la directory "dirIniziale" nella directory corrente.
    Quindi a fine installazione mi ritrovo "dirIniziale" della posizione giusta!!

    Grazie andbin e grazie schumy.

  6. #26
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da roquentin Visualizza il messaggio
    E se l'utente decidesse di cambiare il destination folder ??
    Ripeto quello che avevo detto qualche post fa.... è il sistema di installer che, se offre all'utente la possibilità di personalizzare il percorso, allora deve poter usare quel percorso scelto anche per la directory nei collegamenti.

    Tutto qui, ovvero dipende dal tool usato per creare l'installer e da come lo si programma/configura.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.