Fórum REMOVENDO DIRETÓRIO #150423

29/03/2003

0

Como removo um diretório C:\Teste com todo o conteudo dentro, sem perguntar se quero apagar algo, como se fosse o deltree/y do DOS

[]´s


Fico grato pela ajuda

Nelson


Anonymous

Anonymous

Responder

Posts

31/03/2003

Dor_poa

procedure DelTree(const RootDir : String);
var
SearchRec : TSearchRec;
begin
Try
ChDir(RootDir); {Caminho Especificado}
FindFirst(´*.*´,faAnyFile,SearchRec);
Erc := 0;
while Erc = 0 do
begin
if ((SearchRec.Name <> ´.´ ) and (SearchRec.Name <> ´..´)) then
begin
if (SearchRec.Attr and faDirectory>0) then
begin
{Achou o diretório e ira apagar seus arquivos}
DelTree(SearchRec.Name);
end
else
begin
{Achou um arquivo. Apagar ou não}
end;
end;
Erc := FindNext (SearchRec);
{ Erc igual a zero se o FindNext obtiver sucesso, senão erro do DOS}
Application.ProcessMessages;
end;
finally
if Length(RootDir) > 3 then
ChDir(´..´);
end;
end;

//////////////////////
OU ENTAO..
/////////////////////
Uses
Shellapi, filectrl, //declare estas das units!!!
function DeleteFolder(FolderName: String; LeaveFolder: Boolean): Boolean;
var
r: TshFileOpStruct;
begin
Result := False;
if not DirectoryExists(FolderName) then
Exit;
if LeaveFolder then
FolderName := FolderName + ´ *.* ´
else
if FolderName[Length(FolderName)] = ´ \ ´ then
Delete(FolderName,Length(FolderName), 1);
FillChar(r, SizeOf(r), 0);
r.wFunc := FO_DELETE;
r.pFrom := PChar(FolderName);
r.fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
Result := ((ShFileOperation(r) = 0) and (not r.fAnyOperationsAborted));
end;
Usa-se Assim:
procedure TForm1.Button1Click(Sender: TObject);
begin
deleteFolder(´c:\temp´,false);
end;


****************
ESPERO TER LHE AJUDADO...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar