Eaí GUJZeiros, beleza?
Então, já tive diversos problemas com o renameTo do File, porém todos foram contornados e este agora está me dando bastante dor de cabeça. Eu leio alguns arquivos XMLs e movo-os para determinadas pastas, BKP se o XML foi lido com sucesso ou ERR se caso contrário. Minha lógica para ver se o xml foi lido com sucesso é:
if(f.getName().endsWith("xml")){
someChanged(f.getName());
boolean sucesso = false;
try {
sucesso = verificaTipoNotaFiscal(f);
} catch (ParserConfigurationException ex) {
sucesso = false;
Logger.getLogger(RetXML.class.getName()).log(Level.SEVERE, null, ex);
} catch (SAXException ex) {
sucesso = false;
Logger.getLogger(RetXML.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
sucesso = false;
Logger.getLogger(RetXML.class.getName()).log(Level.SEVERE, null, ex);
}
if(!sucesso){
try {
moveArquivoErro(f);
setChanged();
notifyObservers("erro");
} catch (IOException ex) {
Logger.getLogger(RetXML.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
e o Método moveArquivoErro segue:
private void moveArquivoErro(File file) throws IOException{
String name = file.getName();
File tmp = new File(pastaErro+name);
file = null;
boolean sucesso = file.renameTo(tmp);
}
CREIO eu, que o arquivo que está a ser movido esteja em uso... porém como saber e o que fazer para contornar?
Obrigado desde já!