Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di mdegiova
    Registrato dal
    Feb 2009
    residenza
    Sondrio
    Messaggi
    134

    JFileChooser salvare file da URL al mio pc

    Scusate la domanda sono ancora inesperto in java, sto cercado di creare un jframe con bottone che premuto mi salva un file da URL.

    Utilizzo JFileChooser, e impostato come segue funziona ma dovrei apportare aleucne migliorire:
    1) in setFileSelectionMode dovrei settare FILES_ONLY.
    ma se lo utilizzo non mi salva più il file !
    2) Vorrei che dopom il primo salvataggio di un file mantenesse il percorso di salvataggioper il salvataggio dei successivi file
    senza dover ogni volat indicare il percorso di destinazione.
    3) far apparire in "Nome Cartella" il nome del file che sto salvando.

    ....
    JFileChooser fileChooser = new JFileChooser();

    fileChooser.setDialogTitle("Salva file su disco");
    fileChooser.setFileFilter(new zipFileFilter());
    fileChooser.setCurrentDirectory(new File ("."));
    fileChooser.setFileSelectionMode(JFileChooser.DIRE CTORIES_ONLY);
    fileChooser.showSaveDialog(button);
    File myFile = fileChooser.getSelectedFile();
    String myPath = myFile.getPath();

    FileOutputStream fos = new FileOutputStream (myPath +"\\"+label+".zip");

    BufferedOutputStream bout = new BufferedOutputStream (fos,1024);
    byte data[] = new byte [1024];

    while(in.read(data,0,1024)>=0){
    bout.write(data);

    }
    ....

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da mdegiova Visualizza il messaggio
    1) in setFileSelectionMode dovrei settare FILES_ONLY.
    ma se lo utilizzo non mi salva più il file !
    Da quanto vedo, il nome del file è "composto" da te, dove il nome è il valore di 'label' più una estensione fissa. Quindi mi pare ovvio che adesso il file chooser deve far scegliere una directory!
    Quindi o decidi di far scegliere tutto il path, anche il nome file, all'utente con il file chooser .... oppure se lo componi tu il path applicando nome.estensione, allora fai scegliere la directory o al limite un file ma butti via il nome e ci metti il tuo composto.

    Quote Originariamente inviata da mdegiova Visualizza il messaggio
    2) Vorrei che dopom il primo salvataggio di un file mantenesse il percorso di salvataggioper il salvataggio dei successivi file
    senza dover ogni volat indicare il percorso di destinazione.
    Questa è solo questione di "logica" nella tua applicazione, da gestire con le opportune variabili di istanza.

    Quote Originariamente inviata da mdegiova Visualizza il messaggio
    3) far apparire in "Nome Cartella" il nome del file che sto salvando.
    Che intendi?
    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 L'avatar di mdegiova
    Registrato dal
    Feb 2009
    residenza
    Sondrio
    Messaggi
    134
    Ma mi pui dire come modificare il codice per poter fare vedere all'utente non solo le cartelle ma anche i file mentre salva ad esempio utilizzando FILE_AND_DIRECTORIES (che cmq pure questa non mi salva i files).

    Mentre vorrei far apparire nello sapzio sopra a tipo di file solo il nome nel file che sto salvando e non solo il percorso dove viene salvato (cosa che fa adesso).

    te ne sarei grato

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da mdegiova Visualizza il messaggio
    Ma mi pui dire come modificare il codice per poter fare vedere all'utente non solo le cartelle ma anche i file mentre salva ad esempio utilizzando FILE_AND_DIRECTORIES (che cmq pure questa non mi salva i files).
    Dal codice sopra, tu componi:

    myPath +"\\"+label+".zip"

    (nota: non è comunque nemmeno appropriato al 100% l'uso di "\\", dovresti usare invece il costruttore apposito di File)

    Quindi myPath deve contenere una directory. Se imposti il file chooser per far selezionare un file, è chiaro che se myPath contiene esattamente il file scelto ... non ha senso! Dovresti prenderne solo la directory. Ma a quel punto non ha neanche tanto senso far scegliere un file e poi butti via l'ultima parte nome.ext.

    Quindi chiarisciti le idee su questo punto. O fai scegliere tutto, compreso il nome del file, all'utente. Oppure fai scegliere una directory e appendi un nome.ext fisso o basato su altri criteri che vuoi tu.

    Quote Originariamente inviata da mdegiova Visualizza il messaggio
    Mentre vorrei far apparire nello sapzio sopra a tipo di file solo il nome nel file che sto salvando e non solo il percorso dove viene salvato (cosa che fa adesso).
    Nella casella di testo ti fa vedere il path completo proprio perché sta lavorando in modo DIRECTORIES_ONLY (negli altri modi non è così).
    Non mi pare si possa evitare questo (path completo nella casella) se lavora in modo DIRECTORIES_ONLY.
    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 L'avatar di mdegiova
    Registrato dal
    Feb 2009
    residenza
    Sondrio
    Messaggi
    134
    OK sono riuscito in questo modo

    fileChooser.setFileSelectionMode(JFileChooser.FILE S_ONLY);
    ...
    File test = new File (label+".zip");
    FileOutputStream fos = new FileOutputStream (myPath + test);
    ..
    ..

    Ma ora lo spazio che prima mi indicava il percorso è vuoto, e l'utente è obbligato a scrivere un nome per il file da salvare.
    Come posso impostare un nome di file predefinito ?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da mdegiova Visualizza il messaggio
    fileChooser.setFileSelectionMode(JFileChooser.FILE S_ONLY);
    Il modo FILES_ONLY è già il "default" ... non ci sarebbe bisogno di settarlo esplicitamente.

    Quote Originariamente inviata da mdegiova Visualizza il messaggio
    File test = new File (label+".zip");
    FileOutputStream fos = new FileOutputStream (myPath + test);
    Se devi mettere insieme un path e un nome(.est) il modo migliore e più appropriato è l'uso di uno dei costruttori di File:

    File(File parent, String child)

    oppure

    File(String parent, String child)

    Sono fatti apposta per questo.

    Quote Originariamente inviata da mdegiova Visualizza il messaggio
    Ma ora lo spazio che prima mi indicava il percorso è vuoto, e l'utente è obbligato a scrivere un nome per il file da salvare.
    Come posso impostare un nome di file predefinito ?
    codice:
    fc.setSelectedFile(new File(fc.getCurrentDirectory(), "default.xyz"));

    fc è il JFileChooser. Poi l'utente chiaramente è libero di scrivere altro o selezionare un file esistente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it L'avatar di mdegiova
    Registrato dal
    Feb 2009
    residenza
    Sondrio
    Messaggi
    134
    Ho provato ma lo spazio mi resta ancora vuoto!

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da mdegiova Visualizza il messaggio
    Ho provato ma lo spazio mi resta ancora vuoto!
    La riga che ho detto (ripeto qui):

    codice:
    fc.setSelectedFile(new File(fc.getCurrentDirectory(), "default.xyz"));

    è chiaramente da fare prima di aprire la dialog del file-chooser .... altrimenti non serve a nulla.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Fa vedere il codice modificato...
    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 L'avatar di mdegiova
    Registrato dal
    Feb 2009
    residenza
    Sondrio
    Messaggi
    134
    ecco il codice :

    codice:
    ....
            JFileChooser fileChooser = new JFileChooser();
           
            fileChooser.setDialogTitle("Salva file su disco");
            fileChooser.setFileFilter(new zipFileFilter());
            fileChooser.setCurrentDirectory(new File ("."));
            fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
            fileChooser.showSaveDialog(button);
            File myFile = fileChooser.getSelectedFile();
            String myPath = myFile.getPath();
           
            File parent = new File (ScaricaFrame.cartella+"_"+label+"_"+ScaricaFrame.Fileest+".zip");
            fileChooser.setSelectedFile(new File(fileChooser.getCurrentDirectory(),"test.zip"));
            FileOutputStream fos = new FileOutputStream (myPath + parent);
                  
                    
            BufferedOutputStream bout = new BufferedOutputStream (fos,1024);
            byte data[] = new byte [1024];
            
            while(in.read(data,0,1024)>=0){
                bout.write(data);
    ...
    Ultima modifica di LeleFT; 01-07-2014 a 18:25 Motivo: Aggiunti i tag CODE

Tag per questa discussione

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.