Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347

    Prendere path di un file

    Scusate per il titolo inappropriato, non sapevo che scrivere... la domanda è: se io ho un file che mi serve all'interno di un progetto, come faccio ad avere il suo percorso in modo universale? Mi spiego meglio, ad esempio nel programma scrivo: BufferedReader f = new BufferedReader(new FileReader("percorso_del_file")), finchè sono sulla mia macchina so dove si trova il file esattamente quindi gli do il percorso completo, ma dovendo eseguire il programma su un altro computer?(prendendo per esempio che il file si trova nella root del progetto, o anche in una qualsiasi?)

  2. #2

    Re: Prendere path di un file

    Originariamente inviato da John360
    Scusate per il titolo inappropriato, non sapevo che scrivere... la domanda è: se io ho un file che mi serve all'interno di un progetto, come faccio ad avere il suo percorso in modo universale? Mi spiego meglio, ad esempio nel programma scrivo: BufferedReader f = new BufferedReader(new FileReader("percorso_del_file")), finchè sono sulla mia macchina so dove si trova il file esattamente quindi gli do il percorso completo, ma dovendo eseguire il programma su un altro computer?(prendendo per esempio che il file si trova nella root del progetto, o anche in una qualsiasi?)
    In generale è sempre meglio usare un path relativo.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    Potresti spiegarti meglio?

  4. #4
    Originariamente inviato da John360
    Potresti spiegarti meglio?
    Se ad esempio decidi di posizionare il tuo file nella root di esecuzione del tuo eseguibile, allora ti basta usare un path relativo, escludendo il percorso da fare per raggiungere l'applicazione stessa.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    ok quindi dando semplicemente il nome del file?
    EDIT: e se volessi inserire il file che mi serve direttamente nel file .jar?

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Il percorso di un file è sempre una cosa "delicata".

    1) MAI inserire in un'applicazione un percorso assoluto: nessuno ti darà mai la garanzia che il file esista nel percorso da te scritto, né che il percorso scritto sia effettivamente "valido" per il sistema operativo in cui l'applicazione viene eseguita

    2) Scrivere sempre percorsi relativi: relativi significa "relativi alla posizione della tua applicazione"; è il caso classico dei file di configurazione: si predispone una directory "config" allo stesso livello dell'applicazione in cui inserire i file di configurazione

    Siccome si sa "sempre" se il file risiede all'interno del JAR o all'esterno (sto escludendo casi particolarissimi, ma che comunque si possono far ricondirre al caso generale), si opta, a seconda, per una delle strategie seguenti:

    Se il file è interno al JAR, lo si recupera con getResource()/getResourceAsStream() usando la notazione che più si adatta: la notazione a percorso assoluto o la notazione a percorso relativo (vedi questa discussione per capirne la differenza).

    Se il file è esterno, si usa sempre un percorso relativo all'applicazione:

    codice:
    FileReader fr = new FileReader("config/miaConfigurazione.xml");
    Il percorso qui sopra è relativo (non inizia con "/", né con l'indicazione del nome di un unità). Il programma cercherà un file chiamato "miaConfigurazione.xml" all'interno della directory "config" che deve essere nella stessa posizione da cui viene avviato (è il concetto di working directory).

    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 2011
    Messaggi
    347
    Grazie! Molto esaustivo! Un'ultima domanda: che differenza c'è tra usare un oggetto URL e un normale flusso? A me la cosa più naturale che verrebbe da fare è usare il flusso per poter passare poi il file ad un oggetto File o un oggetto che gestisce immagini ad esempio, quindi qual'è l'utilità degli oggetti URL?

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.