none
Erro ao obter conteúdo de arquivo ao utilizar System.IO.File.ReadAllText. RRS feed

  • Pergunta

  • Olaa,

               Estou utilizando um Windows Service, o mesmo utiliza FileSystemWatcher para verificar se uma determinada pasta recebe algum arquivo, quando a pasta recebe um arquivo no formato informado por mim eu obtenho o caminho do arquivo e obtenho o conteúdo do mesmo conforme mostrado abaixo:

    public static void OnChanged(object source, FileSystemEventArgs e){
     
    string LocalizacaoArquivo = e.FullPath;
         
    ...
    
    String ConteudoDoArquivo = System.IO.File.ReadAllText(LocalizacaoArquivo );
    
    ...
    
    }

    Só que o seguinte erro é gerado:

    The process cannot access the file 'C:\ArquivosTXT\Teste.txt' because it is being used by another process.

    Isso geralmente ocorre principalmente quando eu coloco o mesmo arquivo na pasta acima duas vezes, como resolver tal problema, de forma a trabalhar de forma que esse erro não seja gerado ? qual a melhor forma de obter o conteúdo de um arquivo nessa situação ?

    Desde Já, Agradeço.

    Atenciosamente.


    • Editado _dev quarta-feira, 17 de outubro de 2012 21:35
    quarta-feira, 17 de outubro de 2012 21:33

Respostas

  • Isso é comum, parece que o evento é lançado no momento que o arquivo é criado. Mas pode ser que o processo que o criou ainda está utilizando ele.

    O que você deve fazer é criar um delay antes de tentar ler o arquivo.  Se tentar ler a primeira vez e der erro, tentar mais uma vez após um certo tempo novamente.

    • Marcado como Resposta _dev quarta-feira, 7 de novembro de 2012 23:58
    quinta-feira, 18 de outubro de 2012 01:25

Todas as Respostas

  • Isso é comum, parece que o evento é lançado no momento que o arquivo é criado. Mas pode ser que o processo que o criou ainda está utilizando ele.

    O que você deve fazer é criar um delay antes de tentar ler o arquivo.  Se tentar ler a primeira vez e der erro, tentar mais uma vez após um certo tempo novamente.

    • Marcado como Resposta _dev quarta-feira, 7 de novembro de 2012 23:58
    quinta-feira, 18 de outubro de 2012 01:25
  • Dúvida sanada...grato pela atenção.
    quarta-feira, 7 de novembro de 2012 23:59