Ir para conteúdo
  • Cadastre-se

dev botao

Verificar se um arquivo existe


  • Este tópico foi criado há 1549 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Olá pessoal.

Estou utilizando o seguinte comando:

if FileExists('C:\Temp\meuarquivo') then begin

...

end;

O problema é que o arquivo está lá na pasta corretamente e o FileExists do Delphi retorna False, como se o arquivo não existisse mesmo. Está tudo correto com o caminho e nome do arquivo.

Fiz uma pesquisa na internet sobre o tema e não encontrei muitas soluções para este problema ou uma outra alternativa para o FileExists.

Já utilizei também o TFile.Exists da biblioteca IOUtils e também não funcionou.

Utilizei uma função function FileExistsSomewhere(FileName : String; var Path : String) : Boolean; e também não funcionou.

Gostaria de saber se existem outras formas de verificar se o arquivo existe, além dessas ai.

A localização do arquivo é na máquina local. Em rede também não funciona. Utilizo Delphi 2010.

Para ilustrar melhor a localização do arquivo, trata-se da baixa do arquivo XML na manifestação do destinatário. O XML é baixado corretamente pelo componente e é salvo corretamente na pasta. Até ai, tudo perfeito!

Depois disso, preciso pegar o XML e fazer uma operação específica com ele e antes de mais nada, preciso saber se ele existe na pasta. É ai que está o problema!

Li em algum lugar que quando o arquivo é descompactado, o FileExists não vai reconhecer mesmo. Só depois de algum tempo. Não me lembro ao certo a explicação e não sei onde li isso para postar o link aqui.

De qualquer forma, o problema ocorre justamente após o XML ser descompactado.

Veja, não é um problema no componente ACBrNFe, e sim, um problema no Delphi. Por isso estou colocando essa dúvida aqui.

Alguém saberia me dizer como posso resolver este problema do FileExists não achar um arquivo recém descompactado? Ou, como fazer para que o FileExists funcione, seja lá em qual condição? Ou ainda, uma outra alternativa que realmente funcione?

Obrigado,

Rogério.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

O FileExists funciona perfeitamente... você ver a muitos exemplos de uso dele no código do ACBr..

Vá com o Debug e verifique se o Nome do Arquivo está correto, é com a extensão...

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Olá Daniel! Obrigado pela resposta.

Sim, o nome do arquivo está correto, o caminho está correto e etc. Já fiz essa verificação várias vezes mudando a pasta, pesquisando outro arquivo e etc.

Por isso que está me deixando confuso e louco. Não consigo entender porque esse "bendito" não localiza o arquivo. O arquivo está lá na pasta e o caminho e nome do arquivo é passado corretamente. Verifiquei isso mil vezes.

Coisa de louco!!! Não entendo o motivo de não funcionar.

Você tem razão, o FileExists funciona muito bem mas, ao baixar o XML e ele ser descompactado (DocZipItem := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items;), o FileExists não consegue "enxergar" o XML na pasta.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Eu ainda acho que a explicação é a mais simples...

Pode haver algo no Path ou nome do arquivo que esteja ligeiramente diferente...

Veja como o DOS exige o arquivo, usando o comando Dir na pasta indicada 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Será que sua aplicação não está sendo bloqueada por um antivírus, programa de proteção bancária ou algo similar?

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Pior que não tem nada bloqueando. Fiz um teste num outro PC e o problema se repete.

O caminho e o nome do arquivo são exatos. Fui debugando e pegando cada um deles e colocando no bloco de notas e comparando com o caminho que o Windows Explorer exibe. Tudo igualzinho!

Como eu disse, se fizer a consulta, ciência da operação e depois a confirmação da operação, o problema ocorre, ou seja, o FileExists falha. Muito louco isso!

Achei também que o caminho ou o nome do arquivo poderia estar longo. Coloquei em outra pasta e com nome pequeno e nada de dar certo.

PQP, isso é um atraso de vida. Ficar caçando um erro assim ninguém merece. Estou horas batendo nisso. O pior é que eu nunca tinha visto um problema desse com o FileExists. Primeira vez.

Link para o comentário
Compartilhar em outros sites

  • Consultores
1 hora atrás, Rogério Braga disse:

Pior que não tem nada bloqueando. Fiz um teste num outro PC e o problema se repete.

O caminho e o nome do arquivo são exatos. Fui debugando e pegando cada um deles e colocando no bloco de notas e comparando com o caminho que o Windows Explorer exibe. Tudo igualzinho!

Como eu disse, se fizer a consulta, ciência da operação e depois a confirmação da operação, o problema ocorre, ou seja, o FileExists falha. Muito louco isso!

Achei também que o caminho ou o nome do arquivo poderia estar longo. Coloquei em outra pasta e com nome pequeno e nada de dar certo.

PQP, isso é um atraso de vida. Ficar caçando um erro assim ninguém merece. Estou horas batendo nisso. O pior é que eu nunca tinha visto um problema desse com o FileExists. Primeira vez.

Você consegue criar um pequeno aplicativo que reproduz o problema?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

Em 19/12/2019 at 14:59, EMBarbosa disse:

Você consegue criar um pequeno aplicativo que reproduz o problema?

É que neste caso não será um pequeno aplicativo, infelizmente!

Terei que criar todo o carregamento do certificado digital, alimentar o componente e tudo mais. Vai dar um trabalho enorme.

Além di FileExists, TFile.Exists e FileExistsSomewhere, teria uma outra forma de verificar se o arquivo existe?

e de fato, o problema ocorre apenas quando descompacta o arquivo.

Link para o comentário
Compartilhar em outros sites

  • Moderadores
22 minutos atrás, Rogério Braga disse:

É que neste caso não será um pequeno aplicativo, infelizmente!

Terei que criar todo o carregamento do certificado digital, alimentar o componente e tudo mais. Vai dar um trabalho enorme.

Você pode modificar o demo do componente pra ilustrar o problema e anexar aqui as alterações.

  • Curtir 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • Administradores

Tópico fechado por falta de retorno do usuário

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1549 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...