Mover arquivo

1 resposta
DanieleS

Como faço para mover um arquivo de um diretório para outro?

Eu tenho esse código, mas ele só copia de um diretório para outro :

import java.io.File;  
import java.io.FileInputStream;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.nio.channels.FileChannel; 


public class IOUtils {
    
    /** 
    * Copia arquivos de um local para o outro 
    * @param origem - Arquivo de origem 
    * @param destino - Arquivo de destino 
    * @param overwrite - Confirmação para sobrescrever os arquivos 
    * @throws IOException 
    */  
   public static void copy(File origem,File destino,boolean overwrite) throws IOException{  
      if (destino.exists() && !overwrite){  
         System.err.println(destino.getName()+" já existe, ignorando...");  
         return;  
      }  
      FileInputStream   fisOrigem = new FileInputStream(origem);  
      FileOutputStream fisDestino = new FileOutputStream(destino);  
      FileChannel fcOrigem = fisOrigem.getChannel();    
      FileChannel fcDestino = fisDestino.getChannel();    
      fcOrigem.transferTo(0, fcOrigem.size(), fcDestino);    
      fisOrigem.close();    
      fisDestino.close();  
   } 
    /** 
    * Copia todos os arquivos de dentro de uma pasta para outra 
    * @param origem - Diretório onde estão os arquivos a serem copiados 
    * @param destino - Diretório onde os arquivos serão copiados 
    * @param overwrite - Confirmação para sobrescrever os arquivos 
    * @throws IOException 
    */  
   public static void copyAll(File origem,File destino,boolean overwrite) throws IOException{  
      if (!destino.exists())  
         destino.mkdir();  
      if (!origem.isDirectory())  
         throw new UnsupportedOperationException("Origem deve ser um diretório");  
      if (!destino.isDirectory())  
         throw new UnsupportedOperationException("Destino deve ser um diretório");  
      File[] files = origem.listFiles();  
      for (File file : files) {  
         if (file.isDirectory())  
            copyAll(file,new File(destino+"\\"+file.getName()),overwrite);  
         else{  
            System.out.println("Copiando arquivo: "+file.getName());  
            copy(file, new File(destino+"\\"+file.getName()),overwrite);  
         }  
      }  
   }  



   public static void main(String[] args) {  
      File file = new File("C:\\Users\\Public\\Videos\\Sample Videos");  
      File dest = new File("D:\\Destino");  
      try {  
         copyAll(file, dest,true);  
      } catch (IOException e) {  
         e.printStackTrace();  
      }  
   }  


}

1 Resposta

Gustavo_Marques

Conhece o commons-io?

Essa classe abaixo tem um monte de métods prontos para manipulação de arquivos. Procure os que começam com ‘move…’
http://commons.apache.org/io/api-1.4/org/apache/commons/io/FileUtils.html

Ou se preferir use sua classe e após fazer a cópia de um origem.delete(). Pronto, arquivo movido.

att

Criado 2 de novembro de 2012
Ultima resposta 3 de nov. de 2012
Respostas 1
Participantes 2