Fórum Apagar arquivos e pastas de um só vez #282143
18/05/2005
0
Olá pessoal!
Gostaria de saber se alguém poderia me ajudar com alguma função de apagar arquivos e pastas de forma recursiva. Como fazia o ´DelTree´ do DOS, por exemplo.
Pesquisei e encontrei a seguinte função:
Porém, neste caso apesar da função funcionar corretamente, ela demora muito para apagar tudo que exite numa pasta. Eu aponto a pasta e tudo que está dentro é apagado. Só que está demorando em torno de 1,5 segundos para apagar uma única pasta vazia.
Alguém tem uma outra solução para o problema?
Valeu!
wbb
Gostaria de saber se alguém poderia me ajudar com alguma função de apagar arquivos e pastas de forma recursiva. Como fazia o ´DelTree´ do DOS, por exemplo.
Pesquisei e encontrei a seguinte função:
function DelDir(hHandle: THandle; Const sPath : String; Confirm: Boolean): Boolean; // use a funcão assim: DeleteDir(Self.Handle,´C:\TESTE´,True); var OpStruc: TSHFileOpStruct; FromBuffer, ToBuffer: array[0..128] of Char; begin try Result := False; FillChar(OpStruc, Sizeof(OpStruc), 0); FillChar(FromBuffer, Sizeof(FromBuffer), 0); FillChar(ToBuffer, Sizeof(ToBuffer), 0); StrPCopy(FromBuffer, sPath); with OpStruc do begin Wnd := hHandle; wFunc := FO_DELETE; pFrom := @FromBuffer; pTo := @ToBuffer; // Emite mensagem padrão do Windows, de confimação de exclusão // da pasta e todo o seu conteúdo. if not Confirm then fFlags:= FOF_NOCONFIRMATION; fAnyOperationsAborted := False; hNameMappings := nil; end; if ShFileOperation(OpStruc) = 0 then Result := True; except on e: exception do begin Result := False; end; end; end;
Porém, neste caso apesar da função funcionar corretamente, ela demora muito para apagar tudo que exite numa pasta. Eu aponto a pasta e tudo que está dentro é apagado. Só que está demorando em torno de 1,5 segundos para apagar uma única pasta vazia.
Alguém tem uma outra solução para o problema?
Valeu!
wbb
Wbb
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)