renameTo não funciona!

8 respostas
J

[size=18]Estou buscando arquivos xml atraves de um FOR e validando os mesmos com um parser até ai beleza os que ele valida eu importo e depois consigo dar o renameTo pro diretorio de backup…o problema é que eu não estou conseguindo mover esses arquivos que estão incorretos para o diretorio de “erros” usando renameTo, utilizo ele quando o validador de xml cai na EXCEPTION, indicando que o arquivo está com formatação incorreta…percebi que o arquivo ainda esta sendo usado pelo sistema nesse momento, não existe algum comando que feche esse procedimento e me deixe mover o arquivo ???Se alguem tiver uma outra sugestao fico no aguardo…

Obrigado a todos !

[/size]

8 Respostas

edmarr

Posta o código ai pra gente ter uma idéia .

J
Segue o codigo..


File f = file;

DOMParser parser = new DOMParser();
        XMLParser xmlp;         
        
        

        String de = f.toURI().toURL().toString();
        //Criamos uma classe SAXBuilder que vai processar o XML4  
        SAXBuilder sb = new SAXBuilder();   
        //valida a estrutura do XML                
        Document d = null;
        
       try{                

            parser.parse(de);                
            d = sb.build(f);                 
       
       } catch (JDOMException ex) {
                            
            logger.error(ex.getMessage(), ex);                   
        } catch (IOException ex) {                    
            logger.error(ex.getMessage(), ex);                
        }catch(SAXException ex){
            //jogar o arquivo para a erro
            f.renameTo(new File (util.getResource().getString("caminho.arquivo.emitida.erros"+ codigoEmpresa)+"11"));
            ex.getMessage();
        }            
       
        //Recuperamos o elemento root  
        Element banco = d.getRootElement();  

            NfeEmitida ENfe = new NfeEmitida();

                ENfe.setSistemaOrigem(banco.getChildText("sistOrigem"));

zoren

você fechou os objetos que usou para ler o arquivo??

J

Eu so vou começar a ler esse arquivo depois de dar um build ate então não leio o arquivo, ja tentei tambem fechar o parser…dando
parser=null e nada de funcionar…

zoren

geralmente pra fechar usa o método close()

Fernando_Generoso_da

Deve ser esse o problema…Não vai conseguir renomear um arquivo que esteja sendo utilizado por outro processo.

Fernando

J

Não existe close() para essa classe…todos os closes e null que eu podia fazer eu fiz…mas mesmo assim nao foi…

J

O tipo File não close() tbm…tentei de tudo…

Criado 27 de agosto de 2009
Ultima resposta 27 de ago. de 2009
Respostas 8
Participantes 4