Avatar billede azzodiac Nybegynder
15. februar 2004 - 21:18 Der er 5 kommentarer og
1 løsning

Slet mappe

Hejsa.
Jeg vil gerne slette en mappe, men har kun kunne finde funktioner til at slette mapper som i forvejen er tomme.
Kan nogen hjælpe mig med en funktion som sletter en mappe uanset hvor mange filer der er i den?
På forhånd tak.
Avatar billede nca Juniormester
15. februar 2004 - 21:31 #1
Denne funktion gør arbejdet:

function deletedir(Dirname: string): boolean;
var
T: TSHFileOpStruct;
ADir: string;
begin
  try
    Fillchar(T, SizeOf(T), #0);
    ADir := Dirname + #0#0;
    with T do begin
      Wnd := 0; // no handle therefore no animation
      wFunc := FO_DELETE;
      pFrom := pchar(ADir);
      fFlags := FOF_SILENT or FOF_NOCONFIRMATION; // just do it
    end;
    Result := (SHFileOperation(T) = 0);
  except
    Result := false;
  end;
end;
Avatar billede hrc Mester
15. februar 2004 - 21:38 #2
Der findes også Delphi funktionen RemoveDir som forudsætter, at kataloget er tomt forinden.
Avatar billede hrc Mester
15. februar 2004 - 21:40 #3
Min fejl - read the f...... question!

i hvilken unit ligger TSHFileOpStruct?
Avatar billede azzodiac Nybegynder
15. februar 2004 - 21:40 #4
Kanon. Jeg skal vist inkludere at eller andet bibliotek, før jeg kan bruge funktionen. Kan du fortælle mig hvilket?
Avatar billede Slettet bruger
15. februar 2004 - 22:49 #5
azzodiac -> Du skal tilføje ShellApi til uses :)
Avatar billede azzodiac Nybegynder
15. februar 2004 - 22:52 #6
Perfekt. Tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester