Tenho uma aplicação que “pega” um monte de arquivos de uma pasta de entrada e faz uma serie de processamentos, alguns arquivos são aprovados e outros rejeitados, o que eu estou tentando fazer é mover os arquivos da pasta de entrada para a pasta correta apos o processamento mas o codigo a seguir não funciona…
Fileentrada=newFile(dirEntrada+nomeDoArquivo);Filesaida=newFile(dirAprovados);booleanmoveu=entrada.renameTo(newFile(saida,nomeDoArquivo));if(!moveu){System.out.println("Não foi possivel mover o arquivo original "+dirEntrada+nomeDoArquivo);}
"Renames the file denoted by this abstract pathname.
Many aspects of the behavior of this method are inherently platform-dependent: The rename operation might not be able to move a file from one filesystem to another, it might not be atomic, and it might not succeed if a file with the destination abstract pathname already exists. The return value should always be checked to make sure that the rename operation was successful. "
Se inglês for um problema, basicamente pode realmente existir um “bug”, ou pode haver um arquivo com o mesmo nome onde você vai tentar copiar. Se for no linux testa também se você tem permissões para copiar na pasta que você quer.
J
jason_voorheesPJ
Então deve ser bug mesmo…
Uso o windows e tenho todas as permissões nessa maquina…
Que que eu devo fazer agora???
Alguem tem uma dica???
Valeu…
BrunoBastosPJ
você pode ler esse arquivo com bufferedreader e criar um outro arquivo com o mesmo nome, na pasta que você quer criar usando bufferedwriter… Deve ter solução melhor só que nao consigo pensar em nenhuma agora…
A solução (provisoria) que acabei fazendo foi com stream mesmo, criei um novo arquivo e tentei fazer um .delete no antigo mas não deu certo, então fiz um batch pra rodar depois que minha aplicação para de rodar mas não quero deixar assim não, achei meio porco…
Jair amanhã vou dar uma olhada nessa maneira do Apache, vamos ver se vai funcionar…
Muito obrigado pela ajuda de voces e amanhã falo se deu certo ou não…
Valeu…
J
jason_voorheesPJ
Pessoal consegui resolver…
O problema foi de distração mesmo, eu tinha colocado a chamada pra mover o arquivo antes de fechá-lo…
Foi besteirada mesmo…