Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339

    Ricavare la Directory "superiore" di un file

    Ciao.

    Vorrei ricavare la directory superiore di un file , e salvarci dentro un altro file.

    Per esempio :

    Ho un file pippo.txt il cui percorso è C:\Documenti\Altro\pippo.txt

    Ricavo il percorso superiore di questo file cioè C:\Documenti\Altro e ci salvo dentro un altro file.

    Per salvare i dati sul file ho utilizzato un JFileChooser (JFCS).

    Ho ricavato il file selezionato :

    codice:
    File f = JFCS.getSelectedFile();
    E poi ci ho scritto dentro una treeset :

    codice:
    ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(f));
    out.writeObject(treeset);
    Non capisco però come ricavare da f la directory superiore per poi salvarci dentro un altro file contenente il path di f

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Markus85 Visualizza il messaggio
    Non capisco però come ricavare da f la directory superiore per poi salvarci dentro un altro file contenente il path di f
    String getParent()
    oppure
    File getParentFile()

    entrambi di java.io.File. Basta guardare il javadoc.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Ah ecco...
    Avevo intuito fosse getParent....

    Non mi ricordo come creare un file di testo e scriverci la parent directory dentro?
    Mi aiuti?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Markus85 Visualizza il messaggio
    Non mi ricordo come creare un file di testo e scriverci la parent directory dentro?
    Mi aiuti?
    Che vuol dire? Vuoi fare un file di configurazione? Usa i file di "properties".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Si devo fare un file di configurazione.

    Mi puoi fare un esempio veloce con i properties?

    Stavo facendo cosi ma mi sono bloccato:

    codice:
     ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(f));
    		       InterfacciaPrincipale.Magazzino.Salva(out);
    		       String parentD = f.getParent();
    		       ObjectOutputStream out2 = new ObjectOutputStream(new FileOutputStream(parentD));
    		       File f2 = new File("Conf.txt");
    		       PrintWriter pw = new PrintWriter(new FileWriter(f2));
    		       pw.println(f.getPath());
    		       Properties p = new Properties();
    		       p.

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    La documentazione di Properties è chiarissima:


    codice:
    store(OutputStream out, String comments)
    store(Writer writer, String comments)

    Tu hai un PrintWriter (basterebbe anche solo il FileWriter)... usi il secondo:


    codice:
    // Creo l'oggetto Properties
    Properties p = new Properties();
    
    // Ci metto tutte le proprietà
    p.setProperty(..., ...);
    ...
    
    // Salvo su file
    p.store(pw, null);
    
    // E' bene sempre chiudere il file alla fine (magari nel finally di un blocco try/catch/finally)
    pw.close();

    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 L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Markus85 Visualizza il messaggio
    Si devo fare un file di configurazione.
    Ok, oltre a quanto già detto correttamente da LeleFT, io aggiungo solo 2 cose:

    - lo store() con OutputStream scrive il file di properties usando fisso il charset ISO-8859-1 che è lo "standard" per i file di properties. Se usi lo store() con Writer effettivamente la scelta del charset è a tuo carico e discrezione in base a quale Writer usi. Se però scrivi con un charset che non è ISO-8859-1, ottieni un file di properties non-standard e non puoi leggerlo con il load(InputStream) o gestirlo con altri editor/tool che si aspettano il properties in ISO-8859-1.

    - tutta la gestione dell'oggetto Properties sarebbe bene "incapsularla" in una tua classe es. Configurazione. Non solo viene più pulito, perché nascondi tutti questi dettagli interni ma nella tua classe Configurazione puoi anche rendere disponibili all'esterno dei metodi ad esempio per trattare dati primitivi con metodi tipo es. getIntValue(String key).
    Se vuoi un esempio basilare/abbozzato, posso anche fartelo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Sono arrivato più o meno al mio obiettivo (però in un altro modo)....


    codice:
    //Ho ricavato il file dal JFileChooser e l'ho salvato :
    
    File f = InterfacciaPrincipale.JFCS.getSelectedFile();
    ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(f));
    InterfacciaPrincipale.Magazzino.Salva(out);
    
    //Poi ho creato nella stessa directory un file di testo chiamato Magazzino_Conf.txt
    
    PrintWriter pw = new PrintWriter(new FileWriter("Magazzino_Conf.txt"));
    
    //Ora dovrei scrivere dentro questo file la directory dove ho salvato f
    
    //Ho ricavato la path ma non so come scriverla dentro il file
    
    String Path = f.getPath();

  9. #9
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339
    Ho risolto

    codice:
    File f = InterfacciaPrincipale.JFCS.getSelectedFile();
    String Path = f.getPath();
    ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(f));
    InterfacciaPrincipale.Magazzino.Salva(out);
    FileWriter fw = new FileWriter("Magazzino_Conf.txt");
    fw.append(Path);
    fw.close();

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.