I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
function RemoveTree(DirName: string):Boolean; var DirInfo: TSearchRec; begin if FindFirst(DirName+'*.*', FaAnyfile, DirInfo) = 0 then repeat if (DirInfo.Attr = faDirectory) and (DirInfo.Name <> '.') and (DirInfo.Name <> '..') then RemoveTree(DirName+DirInfo.Name); if ((DirInfo.Attr and FaDirectory <> FaDirectory) and (DirInfo.Attr and FaVolumeId <> FaVolumeID)) then DeleteFile(PChar(DirName+DirInfo.Name)); until FindNext(DirInfo) <> 0; FindClose(DirInfo); Result:= RemoveDirectory(PChar(DirName)); end;
.....
uses ShellAPI;
function RemoveTree(DirName: String):Boolean; Var F: SHFileOpstruct; begin F.Wnd:= handle; F.wFunc:= FO_DELETE; F.pFrom:= PChar(DirName+#0); F.pTo:= nil; F.fFlags= nil; Result:= SHFileOperation(F); end;
Prøv at kigge i Hjælp under SHFileOpstruct, der er flere muligheder med fFlags, F.eks vil FOF-ALLOWUNDO slette til Papirkurven.
Bemærk den dobbelte Null-terminering i pFrom, hvis du vil slette flere mapper (eller filer) skriver du f.eks: F.pFrom:= PChar(DirName1+#0+DirName2+#0+DirName3+#0);
Det første eksempel kan jeg godt starte op men den sletter ikke noget i mit dir ... ved ikke om jeg bruger den rigtigt : RemoveTree('C:\Test\');
Det andet eksempel kan jeg ikke få til at virker den ved ikke hvad "handle" er og den brokker sig over : at integer og boolean ikke kan gå sammen her : Result:= SHFileOperation(F);
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.