EDIT
Problema resolvido…haviam arquivos no destino que eu queria mover o arquivo.
Obrigado pela ajuda.
Boa Tarde,
eu tenho um sistema web usando Tomcat e Servlets, onde tem uma thread que verifica arquivos em uma pasta e gera relatorios apartir de xmls e ela é executada a cada X tempo.
Eu tentei fazer com que após ela terminar todo o processo, ela mover o arquivo para uma outra pasta, quando eu testei com a funcionalidade na Main deu certo, mas quando eu jogo ela dentro da funcao run() da thread ela nao consegue mover nem excluir o arquivo.
Alguem tem uma ideia?
O metodo run está mais ou menos assim:
[code]public void run() {
String pathPastaDestino = //Caminho da pasta onde ele ira gravar os xmls
File pastaDestino = new File(pathPastaDestino);
String pathPastaLeitura = //Caminho onde ele irá ler os xmls
File pastaLeitura = new File(pathPastaLeitura );
RandomAccessFile file = null;
if (pastaLeitura.exists()) {
String[] files = pastaLeitura.list();
for (int i = 0; i < files.length; i++) {
File filef = new File(pathPastaLeitura + files[i]);
try {
if(filef.isFile()){
file = new RandomAccessFile(filef,"r");
byte fileContent[] = new byte[(int) file.length()];
file.read(fileContent);
ByteArrayInputStream byis = new ByteArrayInputStream(new String(fileContent).replaceAll("UTF-7","ISO-8859-1").getBytes());
CarteiraConsolidadaXMLReader xmlReader = new CarteiraConsolidadaXMLReader(byis);
CarteiraConsolidadaBean carteiraConsolidada = xmlReader.read();
createReportPdf(carteiraConsolidada, files[i].substring(0,files[i].lastIndexOf(".")) + ".pdf");
file.close();
}
}catch (Exception e) {
System.out.println("Erro na Geracao do Relatorio...");
e.printStackTrace();
return;
}finally{
if(filef.renameTo(new File(pastaDestino, filef.getName()))){
System.out.println("sucesso");
}else{
System.out.println("erro");
}
}
}
}
}[/code]