Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [JAVA] Copia di file

  1. #1
    Utente bannato
    Registrato dal
    Sep 2006
    Messaggi
    179

    [java]copia di file

    sapreste dirmi dove sbaglio...
    in questo codice cerco di fare la copia di tutti i file presenti in un cartella...
    nel caso in cui i la vaiabile che passo (cioè f ) sia un singolo file, la copia risulta esatta, mentre se passo una directory non mi fa la copia dei file......
    codice:
    public class copia {
    
    	public boolean copia (File f) {           
    		try {
                        if (f.isFile()){
                        
    File c=new File("c:/Ingegneria/mysql/temp/pagineHTML/copia.html");
    FileOutputStream fos=new FileOutputStream(c,true);
    PrintStream ps=new PrintStream(fos);
    FileInputStream fis=new FileInputStream(f);
    InputStreamReader isr=new InputStreamReader(fis);
    BufferedReader br=new BufferedReader(isr);
    String linea=br.readLine();
    
    while(linea!=null) {
           ps.println(linea);
           linea=br.readLine();
           
    }
    }else if (f.isDirectory()) 
    {//System.out.println("xxxxxxxxxxxxx");
       File files[] = f.listFiles();
       System.out.println(files.length);
                for (int i = 1; i < files.length; i++)
                {
                File c=new File("c:/Ingegneria/mysql/temp/pagineHTML/copia"+i+".html");
                FileOutputStream fos=new FileOutputStream(c,true);
                PrintStream ps=new PrintStream(fos);
                FileInputStream fis=new FileInputStream(f);
                InputStreamReader isr=new InputStreamReader(fis);
                BufferedReader br=new BufferedReader(isr);
                String linea=br.readLine();
    
            while(linea!=null) {
            ps.println(linea);
            linea=br.readLine();
                               }
                }
     }
             
    }catch (IOException e){	}
                    catch (IllegalThreadStateException e){ }
                    
                    return true;
               }
    }

  2. #2
    Utente bannato
    Registrato dal
    Sep 2006
    Messaggi
    179
    ho trovato la soluzione... ringrazio cmq per la collaborazione!!!

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Originariamente inviato da nikynik
    ho trovato la soluzione... ringrazio cmq per la collaborazione!!!
    Beh, magari pubblicarla per i posteri non sarebbe una cattiva idea, se non altro per dare un senso alla discussione...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Io opto per questa soluzione:

    codice:
     public void copyFile(File in, File out) throws Exception {
         FileChannel sourceChannel = new
              FileInputStream(in).getChannel();
         FileChannel destinationChannel = new
              FileOutputStream(out).getChannel();
         sourceChannel.transferTo(0, sourceChannel.size(), destinationChannel);
         // oppure
         //  destinationChannel.transferFrom(sourceChannel, 0, sourceChannel.size());
         sourceChannel.close();
         destinationChannel.close();
         }
    sembra più perfomante che utilizzare solo Stream, con read & write

    Alfredo

  5. #5
    Utente bannato
    Registrato dal
    Sep 2006
    Messaggi
    179
    la soluzione di FreeManx mi sembra <come dice lui> più performante della mia!!!

  6. #6
    Utente bannato
    Registrato dal
    Sep 2006
    Messaggi
    179
    la mia soluzioe cmq è stata di sostituire dal for con
    codice:
    for (int i = 0; i <= files.length; i++)
                {
    String nomeFiles = files[i].getName();    
                f = files[i];
                File c=new File("c:/Ingegneria/mysql/temp/pagineHTML/pagineDiCopia/"+nomeFiles);
    ..........
    ciao alka!!!

  7. #7
    Scusate,
    sto provando la soluzione di FreeManX, ma volevo chiedervi una cosa, come faccio ha visualizzare un indicatore di progresso della copia stampando la percentuale di avanzamento del processo.
    Quale metodo devo usare per leggere i dati letti, o quelli che mancano alla fine?

    Grazie mille -Daniele-

  8. #8
    . . . nessuna risposta ?

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Il componente da usare è JProgressBar

    Sul forum della sun ho trovato questo thread... credo che ci sia una soluzione nel penultimo post

    http://forum.java.sun.com/thread.jsp...sageID=2973525
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.