Fórum Pasta não some após deletada #448331
10/07/2013
0
Olá Programadores....
É a minha primeira vez em Forum, e espero não estar perguntando besteira, mas googlorizei e não encontrei nada que me ajudasse nesse caso. Bom vamos ao que interessa.
Após compactar uma pasta estou deletando-á, porem ela só some após a aplicação ser encerrada, provavelmente porque ela está presa a memoria com o programa, mas eu gostaria que ela sumisse pois a aplicação ficará aberta todo o tempo.
Estou usando essa rotina para deleta-lá com tudo o que tem dentro.
procedure DeletaDir(const RootDir:string);
var
SearchRec: tSearchREC;
Erc:Integer;
Begin
try
{$I-}
ChDir(rootdir);
if IOResult <> 0 then
Exit;
FindFirst('*.*', faAnyFile, SearchRec);
Erc:=0;
while Erc=0 do
begin
if ((searchRec.Name <> '.') and (searchrec.Name<>'..')) then
if (SearchRec.Attr and faDirectory>0) then
DeletaDir(SearchRec.Name)
Else DeleteFile(pansichar(Searchrec.Name));
Erc:=FindNext ( SearchRec);
Application.ProcessMessages;
end;
finally
If Length (RootDir)>3 then
Chdir('..');
end;
RmDir(rootDir);
{$I+}
End;
É a minha primeira vez em Forum, e espero não estar perguntando besteira, mas googlorizei e não encontrei nada que me ajudasse nesse caso. Bom vamos ao que interessa.
Após compactar uma pasta estou deletando-á, porem ela só some após a aplicação ser encerrada, provavelmente porque ela está presa a memoria com o programa, mas eu gostaria que ela sumisse pois a aplicação ficará aberta todo o tempo.
Estou usando essa rotina para deleta-lá com tudo o que tem dentro.
procedure DeletaDir(const RootDir:string);
var
SearchRec: tSearchREC;
Erc:Integer;
Begin
try
{$I-}
ChDir(rootdir);
if IOResult <> 0 then
Exit;
FindFirst('*.*', faAnyFile, SearchRec);
Erc:=0;
while Erc=0 do
begin
if ((searchRec.Name <> '.') and (searchrec.Name<>'..')) then
if (SearchRec.Attr and faDirectory>0) then
DeletaDir(SearchRec.Name)
Else DeleteFile(pansichar(Searchrec.Name));
Erc:=FindNext ( SearchRec);
Application.ProcessMessages;
end;
finally
If Length (RootDir)>3 then
Chdir('..');
end;
RmDir(rootDir);
{$I+}
End;
Rawgleison
Curtir tópico
+ 0
Responder
Posts
10/07/2013
Euclides Cunha
Cara estou sem meu Delphi aqui, mas já tentou colocar esta rotina, como função de um Objeto(Tem que criar o objeto), Instância-lo, usar sua função para o que deseja e depois finalizar o objeto da memória "FreeAndNil(Objeto)" ?
Responder
Gostei + 0
25/03/2014
Rawgleison
Percebi que na verdade não há a necessidade de deletar a pasta....
Alguém sabe me falar como eu fecho um tópico e coloco [Resolvido] no titulo?
Alguém sabe me falar como eu fecho um tópico e coloco [Resolvido] no titulo?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)