Loading ...
Sorry, an error occurred while loading the content.

Re: [riojug] Metodo renameTo() de java.io.File "falhando".

Expand Messages
  • Alex Rios
    Mas para ter o mesmo efeito eu ainda teria que fazer file.delete(); 2009/11/11 Andre Fonseca ... -- Atenciosamente, Alex Rios Mas para
    Message 1 of 14 , Nov 11, 2009
    • 0 Attachment

      Mas para ter o mesmo efeito eu ainda teria que fazer file.delete();

       
      2009/11/11 Andre Fonseca <aoqfonseca@...>
       

      Uma solução um tanto tosca seria fazer como "antigamente": 


      1. Pegar o seu file que deseja mover
      2. Criar um arquivo para onde deseja escrever
      3. Ler todo o conteúdo do primeiro arquivo e escrevê-lo no segundo
      4. Fechar os dois stream.
      Sei também que dentro da nova api de io, dentro de Channels (não tenho certeza) você consegue fazer cópias de arquivo e mover. Dá uma olhada no javadoc. 


      Espero, sinceramente, ter ajudado

      Atenciosamente
      Andre Fonseca


      2009/11/11 Alex Rios <alex.rios1337@...>
       

      Achei uma solução para o problema:

      Se tiver algo bloqueando ele, recolha o lixo com System.gc();

      Em todo caso, pedidos ao sistema operacional são somente pedidos, não quer dizer que ele os cumpra imediatamente.


      Alguem vê alguma solução melhor?


      2009/11/11 Alex Rios <alex.rios1337@...>
      Testado.

      Não lança nenhuma RuntimeException e debugando o código simplesmente passa devolvendo false.


      2009/11/11 Alex Rios <alex.rios1337@...>

      Vou tentar fazer isso, mas já adiantando ambos os códigos que eu fiz estou rodando direto do eclipse, a permissão para acesso ao diretório provavelmente não iria variar.

      De qualquer forma tentarei a dica.

      2009/11/11 Andre Fonseca <aoqfonseca@...>

       

      Alex,

      Por acaso o seu sistema não lança alguma exceção ?

      Tenta colocar o seu trecho de código dentro de um try catch pegando por RuntimeException.

      Como já sugeriram  pode ser algo relacionado a permissão.

      Faz um debug para ver oque pode estar dando errado !

      Abraços
      Andre Fonseca

      On Wed, Nov 11, 2009 at 5:23 PM, Alex Rios <alex.rios1337@...> wrote:
       

      Criei um metodo main e refiz as operações do meu método e roda numa boa.
      Porém dentra da minha aplicação ele simplesmente não move.

      O que eu queria saber é, por quais motivos essa operação falha?

      2009/11/11 Andrei Vajgel <vajgel@...>

       

      Tirado do Javadoc do método renameTo(File dest):


      Whether or not this method can move a file from one filesystem to another is platform-dependent. The return value should always be checked to make sure that the rename operation was successful.

      Andrei

      On Wed, Nov 11, 2009 at 5:08 PM, Alex Rios <alex.rios1337@...> wrote:
       

      Ola Pessoal,

      Queria saber se alguem já passou por isso.

      Criei um metodo para mover meu arquivos para um diretorio especifico, porém está retornando false, em todas as minhas tentativas.

      public void moveFile(File file) {
              File destination = new File("C:/opt/testepc/proc/" + file.getName());
              log.info("moving file" + file.getName() + "...");
              if(file.renameTo(destination)){
                  log.info(file.getName() + " moved successfully.");           
              }else{
                  log.info(file.getName() + " cannot be moved.");
              }
          }


      Algum palpite?
      --
      Atenciosamente,
      Alex Rios





      --
      Atenciosamente,
      Alex Rios



      --
      Abraços Sinceros e Agradecidos
      Andre Fonseca
      http://www.andrefonseca.net



      --
      Atenciosamente,
      Alex Rios



      --
      Atenciosamente,
      Alex Rios



      --
      Atenciosamente,
      Alex Rios




      --
      Abraços Sinceros e Agradecidos
      Andre Fonseca
      http://www.andrefonseca.net




      --
      Atenciosamente,
      Alex Rios
    • Andre Fonseca
      Alex, Dando vi que dentro da api commons do pessoal da Apache, na parte de IO, existe uma classe FileUtils que tem todos métodos de manipulação de arquivos,
      Message 2 of 14 , Nov 11, 2009
      • 0 Attachment
        Alex,

        Dando vi que dentro da api commons do pessoal da Apache, na parte de IO, existe uma classe FileUtils que tem todos métodos de manipulação de arquivos, inclusive, a sua desejada move.

        Te sugiro duas coisas : primeiro pega o jar e veja se ele funciona dentro do seu projeto. Como é uma api amplamente testada e usada, possivelmente, caso ela não funcione, evidenciara que existe algo com sua aplicação ou contexto (diretorio, so, etc.... ) 

        Caso funcione, você pode usá-lo ou tentar abrir seu código (baixar o fonte e olhar) para ver como foi implementado e fazer igual com suas simplificações e customizações. 


        Espero que tenha te ajudado. Sei como isso dá dor de cabeça. 

        Abraços
        Andre Fonseca

        2009/11/11 Alex Rios <alex.rios1337@...>
         


        Mas para ter o mesmo efeito eu ainda teria que fazer file.delete();

         
        2009/11/11 Andre Fonseca <aoqfonseca@...>
         

        Uma solução um tanto tosca seria fazer como "antigamente": 


        1. Pegar o seu file que deseja mover
        2. Criar um arquivo para onde deseja escrever
        3. Ler todo o conteúdo do primeiro arquivo e escrevê-lo no segundo
        4. Fechar os dois stream.
        Sei também que dentro da nova api de io, dentro de Channels (não tenho certeza) você consegue fazer cópias de arquivo e mover. Dá uma olhada no javadoc. 


        Espero, sinceramente, ter ajudado

        Atenciosamente
        Andre Fonseca


        2009/11/11 Alex Rios <alex.rios1337@...>
         

        Achei uma solução para o problema:

        Se tiver algo bloqueando ele, recolha o lixo com System.gc();

        Em todo caso, pedidos ao sistema operacional são somente pedidos, não quer dizer que ele os cumpra imediatamente.


        Alguem vê alguma solução melhor?


        2009/11/11 Alex Rios <alex.rios1337@...>
        Testado.

        Não lança nenhuma RuntimeException e debugando o código simplesmente passa devolvendo false.


        2009/11/11 Alex Rios <alex.rios1337@...>

        Vou tentar fazer isso, mas já adiantando ambos os códigos que eu fiz estou rodando direto do eclipse, a permissão para acesso ao diretório provavelmente não iria variar.

        De qualquer forma tentarei a dica.

        2009/11/11 Andre Fonseca <aoqfonseca@...>

         

        Alex,

        Por acaso o seu sistema não lança alguma exceção ?

        Tenta colocar o seu trecho de código dentro de um try catch pegando por RuntimeException.

        Como já sugeriram  pode ser algo relacionado a permissão.

        Faz um debug para ver oque pode estar dando errado !

        Abraços
        Andre Fonseca

        On Wed, Nov 11, 2009 at 5:23 PM, Alex Rios <alex.rios1337@...> wrote:
         

        Criei um metodo main e refiz as operações do meu método e roda numa boa.
        Porém dentra da minha aplicação ele simplesmente não move.

        O que eu queria saber é, por quais motivos essa operação falha?

        2009/11/11 Andrei Vajgel <vajgel@...>

         

        Tirado do Javadoc do método renameTo(File dest):


        Whether or not this method can move a file from one filesystem to another is platform-dependent. The return value should always be checked to make sure that the rename operation was successful.

        Andrei

        On Wed, Nov 11, 2009 at 5:08 PM, Alex Rios <alex.rios1337@...> wrote:
         

        Ola Pessoal,

        Queria saber se alguem já passou por isso.

        Criei um metodo para mover meu arquivos para um diretorio especifico, porém está retornando false, em todas as minhas tentativas.

        public void moveFile(File file) {
                File destination = new File("C:/opt/testepc/proc/" + file.getName());
                log.info("moving file" + file.getName() + "...");
                if(file.renameTo(destination)){
                    log.info(file.getName() + " moved successfully.");           
                }else{
                    log.info(file.getName() + " cannot be moved.");
                }
            }


        Algum palpite?
        --
        Atenciosamente,
        Alex Rios





        --
        Atenciosamente,
        Alex Rios



        --
        Abraços Sinceros e Agradecidos
        Andre Fonseca
        http://www.andrefonseca.net



        --
        Atenciosamente,
        Alex Rios



        --
        Atenciosamente,
        Alex Rios



        --
        Atenciosamente,
        Alex Rios




        --
        Abraços Sinceros e Agradecidos
        Andre Fonseca
        http://www.andrefonseca.net




        --
        Atenciosamente,
        Alex Rios




        --
        Abraços Sinceros e Agradecidos
        Andre Fonseca
        http://www.andrefonseca.net
      • Andre Fonseca
        Opa, Última mensagem saiu com erro de português com detalhe comprometedor : Dando vi .... estou me sabotando .... ... Corrigindo, Olhando diversos sites por
        Message 3 of 14 , Nov 11, 2009
        • 0 Attachment
          Opa,

          Última mensagem saiu com erro de português com detalhe comprometedor : "Dando vi .... estou me sabotando".... 

          :D 

          Corrigindo,

          Olhando diversos sites por ai , vi que ...


          ABraços


          2009/11/11 Andre Fonseca <aoqfonseca@...>
          Alex,

          Dando vi que dentro da api commons do pessoal da Apache, na parte de IO, existe uma classe FileUtils que tem todos métodos de manipulação de arquivos, inclusive, a sua desejada move.

          Te sugiro duas coisas : primeiro pega o jar e veja se ele funciona dentro do seu projeto. Como é uma api amplamente testada e usada, possivelmente, caso ela não funcione, evidenciara que existe algo com sua aplicação ou contexto (diretorio, so, etc.... ) 

          Caso funcione, você pode usá-lo ou tentar abrir seu código (baixar o fonte e olhar) para ver como foi implementado e fazer igual com suas simplificações e customizações. 


          Espero que tenha te ajudado. Sei como isso dá dor de cabeça. 

          Abraços
          Andre Fonseca

          2009/11/11 Alex Rios <alex.rios1337@...>
           


          Mas para ter o mesmo efeito eu ainda teria que fazer file.delete();

           
          2009/11/11 Andre Fonseca <aoqfonseca@...>
           

          Uma solução um tanto tosca seria fazer como "antigamente": 


          1. Pegar o seu file que deseja mover
          2. Criar um arquivo para onde deseja escrever
          3. Ler todo o conteúdo do primeiro arquivo e escrevê-lo no segundo
          4. Fechar os dois stream.
          Sei também que dentro da nova api de io, dentro de Channels (não tenho certeza) você consegue fazer cópias de arquivo e mover. Dá uma olhada no javadoc. 


          Espero, sinceramente, ter ajudado

          Atenciosamente
          Andre Fonseca


          2009/11/11 Alex Rios <alex.rios1337@...>
           

          Achei uma solução para o problema:

          Se tiver algo bloqueando ele, recolha o lixo com System.gc();

          Em todo caso, pedidos ao sistema operacional são somente pedidos, não quer dizer que ele os cumpra imediatamente.


          Alguem vê alguma solução melhor?


          2009/11/11 Alex Rios <alex.rios1337@...>
          Testado.

          Não lança nenhuma RuntimeException e debugando o código simplesmente passa devolvendo false.


          2009/11/11 Alex Rios <alex.rios1337@...>

          Vou tentar fazer isso, mas já adiantando ambos os códigos que eu fiz estou rodando direto do eclipse, a permissão para acesso ao diretório provavelmente não iria variar.

          De qualquer forma tentarei a dica.

          2009/11/11 Andre Fonseca <aoqfonseca@...>

           

          Alex,

          Por acaso o seu sistema não lança alguma exceção ?

          Tenta colocar o seu trecho de código dentro de um try catch pegando por RuntimeException.

          Como já sugeriram  pode ser algo relacionado a permissão.

          Faz um debug para ver oque pode estar dando errado !

          Abraços
          Andre Fonseca

          On Wed, Nov 11, 2009 at 5:23 PM, Alex Rios <alex.rios1337@...> wrote:
           

          Criei um metodo main e refiz as operações do meu método e roda numa boa.
          Porém dentra da minha aplicação ele simplesmente não move.

          O que eu queria saber é, por quais motivos essa operação falha?

          2009/11/11 Andrei Vajgel <vajgel@...>

           

          Tirado do Javadoc do método renameTo(File dest):


          Whether or not this method can move a file from one filesystem to another is platform-dependent. The return value should always be checked to make sure that the rename operation was successful.

          Andrei

          On Wed, Nov 11, 2009 at 5:08 PM, Alex Rios <alex.rios1337@...> wrote:
           

          Ola Pessoal,

          Queria saber se alguem já passou por isso.

          Criei um metodo para mover meu arquivos para um diretorio especifico, porém está retornando false, em todas as minhas tentativas.

          public void moveFile(File file) {
                  File destination = new File("C:/opt/testepc/proc/" + file.getName());
                  log.info("moving file" + file.getName() + "...");
                  if(file.renameTo(destination)){
                      log.info(file.getName() + " moved successfully.");           
                  }else{
                      log.info(file.getName() + " cannot be moved.");
                  }
              }


          Algum palpite?
          --
          Atenciosamente,
          Alex Rios





          --
          Atenciosamente,
          Alex Rios



          --
          Abraços Sinceros e Agradecidos
          Andre Fonseca
          http://www.andrefonseca.net



          --
          Atenciosamente,
          Alex Rios



          --
          Atenciosamente,
          Alex Rios



          --
          Atenciosamente,
          Alex Rios




          --
          Abraços Sinceros e Agradecidos
          Andre Fonseca
          http://www.andrefonseca.net




          --
          Atenciosamente,
          Alex Rios




          --
          Abraços Sinceros e Agradecidos
          Andre Fonseca
          http://www.andrefonseca.net



          --
          Abraços Sinceros e Agradecidos
          Andre Fonseca
          http://www.andrefonseca.net
        • Lucio Rodriguez
          Oi, renameTo nao funciona quando os arquivos fonte e destino sao considerados em filesystems diferentes. Em particular nao funciona com NFS ou Samba. A solucao
          Message 4 of 14 , Nov 12, 2009
          • 0 Attachment
            Oi,

            renameTo nao funciona quando os arquivos fonte e destino sao
            considerados em filesystems diferentes.
            Em particular nao funciona com NFS ou Samba.

            A solucao é usar o FileUtils do pacote da Apache
            commons.io
            Dentro tem varia opcoes de move.

            Lucio
          • Alex Rios
            Estranho que chamando o Garbage antes de executar a instrução funciona. Bom saber dessa informação do filesystem. 2009/11/12 Lucio Rodriguez
            Message 5 of 14 , Nov 12, 2009
            • 0 Attachment
              Estranho que chamando o Garbage antes de executar a instrução funciona.
              Bom saber dessa informação do filesystem.

              2009/11/12 Lucio Rodriguez <lucio@...>
               

              Oi,

              renameTo nao funciona quando os arquivos fonte e destino sao
              considerados em filesystems diferentes.
              Em particular nao funciona com NFS ou Samba.

              A solucao é usar o FileUtils do pacote da Apache
              commons.io
              Dentro tem varia opcoes de move.

              Lucio




              --
              Atenciosamente,
              Alex Rios
            Your message has been successfully submitted and would be delivered to recipients shortly.