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!