Copiar arquivo existente (classe File)

0 respostas
S

Olá pessoal.
Estou com problemas com uma função que fiz, que recebe como parâmetro o diretório de destino, e o arquivo fonte, e faz uma cópia desse arquivo fonte para o diretório de destino.
O problema é que quando o nome do arquivo já existe no destino, o programa substitui o arquivo existente por um arquivo inválido de 0 bytes.

Segue o código. Alguém sabe o que pode estar errado?

public static boolean copiar( File diretorioDestino, File arquivoFonte )
   {
      boolean resultado = ERRO;

      try {
         // se o destino é um diretório, faz a cópia
         if( diretorioDestino.isDirectory() ) {
            diretorioDestino = new File( diretorioDestino, arquivoFonte.getName() );


            FileInputStream inStream = new FileInputStream( arquivoFonte );
            FileOutputStream outStream = new FileOutputStream( diretorioDestino );

            int len;
            byte[] buf = new byte[2048];

            while( ( len = inStream.read( buf ) ) != -1 ) {
               outStream.write( buf, 0, len );
            }

            resultado = SUCESSO;
         }
      }
      catch( IOException e )
      {
         resultado = ERRO;
      }

      return resultado;
   }

Alguém pode me ajudar?

Obrigado!

Criado 21 de abril de 2006
Respostas 0
Participantes 1