Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Dificuldade com FileExists


guga123

Pergunta

Pessoal, não sei se alguém já teve esse problema que eu fou descrever aqui:

 

procedure TBinaSismaster.cskBinaRead(Sender: TObject; Socket: TCustomWinSocket);
Var
	vEventoBina: AnsiString;
	vArrayBina: TStringDynArray;
  vNome : string;
  vBina:TStringList;
  i: Integer;
begin
  try
    vEventoBina :=  Socket.ReceiveText;

    if (Length(vEventoBina) >= Length(#13#10)) and
       (Copy(vEventoBina, Length(vEventoBina) - Length(#13#10) + 1,Length(#13#10)) = String(#13#10)) then
      vEventoBina := Copy(vEventoBina,1,Length(vEventoBina) - Length(#13#10));//Retira LineEnd

    vArrayBina := SplitString(String(vEventoBina),',');

    if vArrayBina[0] = '00' then
    begin
      vNome := '';
      if LowerCase(dmUtils.getFromConfig('CONEXAO','Caminho dos dados')) = 'localhost' then
        vNome := '\\'+dmUtils.pubNomeComputador + '\Arquivos\Bina.xml'
      else
        vNome := '\\'+dmUtils.getFromConfig('CONEXAO','Caminho dos dados') + '\Arquivos\Bina.xml';

      vBina := TStringList.Create;

      if not FileExists(vNome) then
      begin
        vBina.Add('<?xml version="1.0" encoding="ISO-8859-1"?>');
        vBina.Add('<TAG>');
      end else
      begin
        vBina.LoadFromFile(vNome);

        for I := 0 to vBina.Count-1 do
        begin
          if vBina[i] = '</TAG>' then
          begin
            vBina.Delete(i);
            Break;
          end;
        end;
      end;

      vBina.Add('  <BINA>');
      vBina.Add('    <FONE>nº telefone</FONE>');
      vBina.Add('    <DATA>data e hora da ligação</DATA>');
      vBina.Add('    <ATEND>0</ATEND>');
      vBina.Add('  </BINA>');
      vBina.Add('</TAG>');
      vBina.SaveToFile(vNome);
    end;
  except

  end;
end;

Essa rotina faz parte de um SERVIÇO que eu criei.

Resumindo o que o serviço faz:

- ele pode ser instalado em qualquer máquina da rede

- ele vai ficar monitorando um socket com ip e porta predefinidos

- ele socket recebe informação de um aparelho de bina.

- quando ele detectar uma ligação, ele deverá inserir a ligação em um arquivo XML (que obrigatoriamente vai estar no servidor), para que qualquer máquina da rede consiga obter essa informação em qualquer momento e utilizá-la da forma que necessita (por motivo de projeto eu não posso guarda essa informação no banco de dados)

 

quando eu rodo essa rotina criando/manipulando o arquivo na mesma máquina em que o serviço está instalado funciona perfeitamente

mas seu eu tentar criar o arquivo em rede, a parte do fileExists nunca encontra arquivo, mesmo ele já existindo na máquina e na hora de salvar a alteração fica dando "File Access Denied".

 

Já tentei literalmente tudo que veio na cabeça:

- compratilhamento de pasta

- permissões de segurança

- mapeamento de rede

- trocar o tipo do arquivo

 

mas nada funciona.

 

Alguém consegue me ajudar?

 

Obrigado

 

 

AVISO:  Coloque o seu Tópico sobre dúvidas, no Forum de Delphi

o Forum Tutoriais e Dicas deve ser usado somente para códigos prontos ou dicas de Delphi

abraço

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Voce não informou qual versão do Windows está usando e nem a versão das maquinas da rede

Se for o Windows 7, o erro de "File Access Denied".... veja essa solução

https://support.microsoft.com/pt-br/help/2623670/-access-denied-or-other-errors-when-you-access-or-work-with-files-and

voce pode fazer um teste simples para comprovar

vBina.SaveToFile(vNome);

No lugar da variavel vNome, coloque o caminho completo para a maquina que voce quer, e coloque tambem o nome do arquivo com a extensão e veja se salva o arquivo

Se salvar, voce deve rever a atribuição do valor para a variavel vNome

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...