Forum
Grundkurs
»Introduktion
»Snabbguide
»Komponenter
»Händelser
»Strängar
»Räkna med Delphi »Egna
typer
»Selektion
»Iteration
»Menyer
»Funktioner
»Arraystrukturer
Tips & Tricks
»Nya tips
»Blandat
»Databaser
»Filer
»Forms
»Grafik
»Internet
»Komponenter
»Matematik
»Multimedia
»Objekt/ActiveX
»Skrivare
»Strängar
»System
»Mest lästa tips
Artiklar
»Delphi och ADO
»Bygga en DLL
»Skapa en enkel rapport
»Hantera registret
»Enheter, units
»Klassen TCanvas
»Använd LookUp Controls
Nya
tips
Lägg
till tips
Delphilänkar
Gästbok
|
|
Radera mappar rekursivt
|
Kategori: Filer
Inlagt: 2006-11-25
Läst: 1433
Inlagt av: Staffan Berg
|
Beskrivning |
Följande funktion raderar alla mappar på angiven sökväg utan möjlighet att ångra åtgärden när den är utförd. Alla underliggande mappar och filer raderas.
|
Kod |
if DelTree('c:\TempDir') then ShowMessage('Directory deleted!') else ShowMessage('Errors occured!') ; ~~~~~~~~~~~~~~~~~~~~~~~~~ uses ShellAPI; Function DelTree(DirName : string ): Boolean; var SHFileOpStruct : TSHFileOpStruct; DirBuf : array [0..255] of char; begin try Fillchar(SHFileOpStruct,Sizeof(SHFileOpStruct),0) ; FillChar(DirBuf, Sizeof(DirBuf), 0 ) ; StrPCopy(DirBuf, DirName) ; with SHFileOpStruct do begin Wnd := 0; pFrom := @DirBuf; wFunc := FO_DELETE; fFlags := FOF_ALLOWUNDO; fFlags := fFlags or FOF_NOCONFIRMATION; fFlags := fFlags or FOF_SILENT; end; Result := (SHFileOperation(SHFileOpStruct) = 0) ; except Result := False; end; end;
|
|
|