Visualizzazione dei risultati da 1 a 8 su 8

Discussione: path e lettura file

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    53

    path e lettura file

    Salve,

    volevo chiedervi come posso impostare nel codice della mia applicazione il path per i diversi sistemi operativi....

    praticamente quando viene distribuita l'applicazione l'utente deve inserire la cartella contenente il file dentro il disco C

    il codice è questo
    codice:
    Properties props = new Properties();//oggetto properties        
    try {       
                Path path = Paths.get("C:\\nome cartella\\nome file");
                props.load(new FileInputStream(path.toString()));//leggo su file properties     
                valoreLetto = props.getProperty(valoreChiave);//assegno alla variabile il valore letto corrispondente alla chiave 
          }
          catch(IOException e){
               
         }
    ora il problema è che così va bene per chi ha windows solo che non so come impostare il codice se
    l'utente ha sistemi operativi diversi da windows
    grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Le regole base:

    1) usa gli slash e non i backslash... sarà la JVM ad occuparsi di trasformare (se necessario) lo slash nel corretto separatore.

    2) Non codificare i percorsi nel sorgente: usa un file di configurazione (se necessario) o richiedi il percorso all'utente (se richiesto dall'applicazione)


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    53
    ciao ti ringrazio per la risposta

    esempio l'utente può avere windows o linux......se ha windows deve mettere la cartella con il file nel percorso C:\nome cartella\file
    se ha linux deve metterlo opt/nome cartella/nome file
    tecnicamente come posso implementarlo?
    Ultima modifica di rrt; 15-05-2014 a 13:46

  4. #4
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Ciao,
    ti diceva LeleFT che puoi avere un file di configurazione esterno. Può essere un semplice file di testo che contiene il percorso del file: all'avvio l'applicazione va a leggere il contenuto e sa dove cercare il file.


  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Ancora non si è capito se il percorso viene richiesto all'utente dall'applicazione o se quel percorso deve essere memorizzato da qualche parte (esempio, un file di configurazione).

    Se viene richiesto all'utente, il problema non si pone: è l'utente che lo indica (scrivendolo direttamente da qualche parte o per mezzo di un JFilrChooser, o altro).

    Se deve essere scritto da qualche parte (come un file di configurazione), basta scriverlo con lo slash (ovviamente, su Linux non esistono i "dischi" C:, D:, ecc, quindi il percorso dovrà essere un percorso "valido" per il sistema operativo).

    Insomma, bisogna capire bene cosa si aspetta l'applicazione, come questo percorso deve essere fornito all'applicazione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Faccio un esempio per chiarire il discorso del file di configurazione.
    Se l'applicazione deve leggere un file di configurazione, questo deve stare in un posto "noto all'applicazione". L'ideale è una cartella (directory) allo stesso livello dell'eseguibile (o della working-dir). Esempio, il file "configurazione.cfg" posto dentro la directory "config":

    codice:
    // Leggo il file di configurazione (come file di properties)
    Properties prop = new Properties();
    FileInputStream fis = null;
    try {
       fis = new FileInputStream("config/configurazione.cfg");
       prop.load( fis );
    } cath (Exception e) {
       e.printStackTrace();
    } finally {
       if (fis != null) {
          try { fis.close(); } catch (Exception e) { }
       }
    }

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    53
    ah ok perfetto..... posso chiederti come scriveresti il file di configurazione per esempio uso properties
    path windows : " "
    path linux : " "
    il codice parte dal primo path se non è corretto passa al secondo ecc....
    questo modo di procedere è corretto?

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da rrt Visualizza il messaggio
    ah ok perfetto..... posso chiederti come scriveresti il file di configurazione per esempio uso properties
    path windows : " "
    path linux : " "
    il codice parte dal primo path se non è corretto passa al secondo ecc....
    questo modo di procedere è corretto?
    No, non mi pare ....

    Un file di "configurazione" tipicamente viene referenziato in modo:
    1) relativo alla directory "corrente" (es. "config.properties" o "conf/config.properties")
    oppure
    2) relativo ad una directory "notevole" del sistema facilmente rintracciabile. Il caso più comune: la "home" directory dell'utente.
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.