Manipulação de arquivos (download e delete)

Delphi

05/02/2018

Pessoal
Algum os colegas passou por problemas na manipulação de arquivos em programas escritos no Delphi, windows 10 (64bits principalmente) e anti-virus da trend?

Característica no dev máquina virtual com windows 7 (32), Delphi 7.

O programa realiza todas as operações sem problemas (download, upload, grava em arquivos, apaga arquivos das áreas determinadas , no geral é uma pasta chamada lixeira no caminho do programa.

A situação o anti virus indica um falso positivo no momento da exclusão de um arquivo que está na pasta da lixeira do sistema e exclui o programa por segurança, o que intriga é que se eu excluir antes o arquivo, ou o erro não ocorre ou ocorre em outro arquivo.

Já fiz e refis a instrução de apagar arquivo, troquei por outra e nada.
Em alguns casos basta reinstalar o sistema e isto não ocorre mais.

segue a instrução de apagar arquivo que estou utilizando
procedure RemoverArquivosDefinitivo (sPasta : String);
var
   SearchRec: TSearchRec;
begin
	if not DirectoryExists(sPasta) then
    begin
        WriteLogr(''''Tentativa de excluir aquivo da pasta ''''+sPasta+'''' que não existe!'''');
        Exit;
    end;
	if (Copy (sPasta,length(sPasta),1)<>''\\\\'') then
    	sPasta := sPasta+''\\\\'';
	if SysUtils.FindFirst( sPasta + ''''*.*'''',faAnyFile ,SearchRec ) = 0 then
    	try
            repeat
				if ( SearchRec.Name <> ''''.'''' ) and ( SearchRec.Name <> ''''..'''' ) then
                begin
                	try
                    	DeleteFile( Pchar( sPasta + SearchRec.Name) );
                    except
                    	on e : Exception do
                            WriteLogr(''''Não foi possivel excluir o arquivo "''''+sPasta+SearchRec.Name +''''". ''''+e.Message);
                    end;
                end;
            until FindNext( SearchRec ) <> 0;
         finally
            SysUtils.FindClose( SearchRec );
         end;

end;
Luiz Vichiatto

Luiz Vichiatto

Curtidas 0

Respostas

Luiz Vichiatto

Luiz Vichiatto

05/02/2018

A propósito, esta parte ficou errada, leia-se<br />
<br />
if (Copy (sPasta,length(sPasta),1)<>''\\\\'') then<br />
        sPasta := sPasta+''\\\\'';<br />
<br />
GOSTEI 0
POSTAR