Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema Salvataggio File

    Ciao a tutti,avrei un problemino e spero che qualcuno di voi mi possa aiutare.
    Sto creando un'applicazione Java per l'acquisizione di frame da un video.
    Il problema è quando vado per selezionare la cartella di destinazione dei file.
    In sostanza quando seleziono la cartella,i file li salva nella cartella precedente.
    Mi spiego meglio...col JFileChooser,scegliendo

    C:\Documents and Settings\User\Desktop\Applicazione\Tesi\Foto Grab

    le immagini,al posto di salvarle in "Foto Grab" le salva in "Tesi".
    Questo è il pezzotto di codice che fa questo salvataggio
    codice:
      
     if (source==grabButton)      
     {      
        JFileChooser finestra= new JFileChooser();        
        finestra.setDialogTitle("Salva Files");   
        finestra.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);        
        finestra.setCurrentDirectory( new File ("c:\\"));
      }
    Grazie per una vostra eventuale risposta.Ciao

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Problema Salvataggio File

    Originariamente inviato da divincodin
    Questo è il pezzotto di codice che fa questo salvataggio
    codice:
      
     if (source==grabButton)      
     {      
        JFileChooser finestra= new JFileChooser();        
        finestra.setDialogTitle("Salva Files");   
        finestra.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);        
        finestra.setCurrentDirectory( new File ("c:\\"));
      }
    Qui in realtà non si vede alcun "salvataggio" ... è solo la parte che "prepara" il JFileChooser.

    Devi poi invocare showSaveDialog() e se lo status ritornato è APPROVE_OPTION, allora usi getSelectedFile() per ottenere l'oggetto File. E visto che il File fa di certo riferimento a una directory (visto che hai richiesto DIRECTORIES_ONLY), dovresti creare un altro oggetto File per aggiungere anche un nome di file (che immagino lo stabilisci tu). E a quel punto ... scrivi con le classi di I/O o altro ... non so.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Si,hai ragione
    Dovevo postare anche il resto.In sostanza ho fatto in modo che ogni 64 foto venga creata una nuova cartella.Ed i file li ho chiamati 01.jpg,02.jpg e così via...
    codice:
     if (source==grabButton)
         { 
           
            JFileChooser finestra= new JFileChooser();
            finestra.setDialogTitle("Salva Files");
            finestra.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            finestra.setCurrentDirectory( new File ("c:\\"));
            
           
           int risposta=finestra.showSaveDialog(this);
           if (risposta == JFileChooser.APPROVE_OPTION) 
            {
              
              try
              {
                 File cart = finestra.getCurrentDirectory();
                   urlFrames=cart.getAbsolutePath();
                  int frameId=0;
                  for ( int i=0; i<=totalFrames; i=i+camp) 
                   {
                     j++;
                     frameId++;
                     // inizialmente mi posiziono sul frame 0 (istante 0)
                     if (i==0)
                      fpc.skip(0);
                     // poi mi posiziono sui frame successivi, secondo il campionamento
                     else
                      fpc.skip(camp);
           
                     // grabba il frame relativo
                     if (currentFrame !=FramePositioningControl.FRAME_UNKNOWN) 
                     {
                      currentFrame =fpc.mapTimeToFrame(p.getMediaTime());
                      currentTime = fpc.mapFrameToTime(i);
                     }
          
                     Buffer buff = new Buffer();
                     buff = fgc.grabFrame();
                     // converte buffer - image
                    BufferToImage bti = new BufferToImage((VideoFormat)buff.getFormat());
                    img = bti.createImage(buff);
                     
                     if(j%65==0) k++;  //k è il nome della cartella
                     new File(urlFrames+"/"+k).mkdirs();
                     String pathFrame = (urlFrames+"/"+k+"/"+j+".jpg");
                     File fileFrame = new File(pathFrame);
    
                   }
    
                catch (Exception EX) 
                { 
                 System.out.println("errore");
                }
    L'errore mi sa che è nel pathFrame.sarà una cavolata...è tutto il giorno che ci lavoro sopra e sn così rinco che nn riesco a risolverlo

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da divincodin
    codice:
    File cart = finestra.getCurrentDirectory();
    No, perché getCurrentDirectory()??? Pensaci: se selezioni la directory C:\pippo\pluto, getCurrentDirectory ritorna ... C:\pippo cioè la directory che contiene quella che hai selezionato!!!!

    --> getSelectedFile()

    Originariamente inviato da divincodin
    codice:
    new File(urlFrames+"/"+k)
    Evita di mettere "/". Ci sono gli appositi costruttori di File per questo, intendo quei due costruttori che ricevono i parametri 'parent' e 'child'. Lascia a lui il compito della concatenazione!!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    X il salvataggio seguendo il tuo consiglio ho risolto.
    X l'altra dritta che mi hai dato,domani vedrò di metterla in atto...x oggi mi fermo qui!
    Su questa parte dell'elaborazione delle immagini sn proprio zero,xò la tesi che mi hanno proposto era così affascinante che ho accettato ugualmente.
    Magari se ho qualche altro dubbio te lo farò presente,visto che mi sa che sei abbastanza preparato
    Cmq grazie dell'aiuto "andbin"

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.