Mover Arquivos

Senhores,

Estou precisando de uma ajuda para mover arquivos em ambiente Unix.

Eu tenho uma quantidade de arquivo em um caminho exemplo: /home/teste/arq, e preciso mover os arquivos desse caminho para o : /home/teste/arq/old.

A pergunta é a seguinte: Existe alguma coisa em java que faça isso?

obrigado,

Fabiano.

Você pode renomear o arquivo:

[code]File origem = new File("/home/teste/arq");
File destino = new File("/home/teste/arq/old");

origem.renameTo(destino);[/code]

mas não é totalmente garantido, então eu aconselho você a fazer assim:

[code]File origem = new File("/home/teste/arq");
File destino = new File("/home/teste/arq/old");

FileOutputStream out = new FileOuputStream(destino);
FileInputStream in = new FileInputStream(origem);

int b;

while((b = in.read())>-1){
out.write(b);
}

out.close();
in.close();

origem.delete();[/code]

Eu não testei o codigo, então pode ser que tenha algum erro, testa aí!

Vc precisa mover estes arquivos dentro do mesmo servidor ? Se sim, vc pode usar a dica do jairelton (ou um código um pouco mais limpo como o indicado em: http://javaalmanac.com/egs/java.io/MoveFile.html) mas vc deve ter cuidado, pois como se trata da classe File isso significa que ela irá carregar todos os arquivos na memória e como vc disse que são muitos (e não sei do tamanho físico deles) isso poderá gerar algumas dores de cabeça. A dica é fechar os File depois dele serem transferidos (renomeados).

Os Arquivos tem em media 5MB.

Essa rotina será executada diariamente, onde é feita a leitura desses arquivos, os dados inseridos em uma tabela, depois de lidos os arquivos, estou querendo mover para a pasta \old.

Eu não consigo utilizar o comando:


mv /home/teste/arq/*.txt /home/teste/arq/old

Vou testar esse codigo que está no site que vc passou Carlos_Santiago.

obrigado.

Fiz o teste com o seguinte codigo:


 File file = new File(this.path + fileList[i]); // já tentei sem o this.path
    
    // Destination directory
    File dir = new File(this.path+"old/");
    
    // Move file to new directory
    boolean success = file.renameTo(new File(dir, file.getName()));
    if (!success) {
        // File was not successfully moved
    }

Não funcionou, quer dizer, funcionou, porem sempre retorna false.
Isso pode ser por estar sendo rodado na minha maquina, se eu colocar rodando o .jar no UNIX , irá funcionar?

Fabiano.