Jak utworzyć, usunąć katalog

Adam Boduch

Aby utworzyć katalog, należy skorzystać z funkcji

MkDir('Nazwa katlogu')

Jeżeli chcemy go usunąć to używamy funkcji

RmDir('Nazwa katalogu')

Jeśli zaś zachodzi potrzeba stworzenia zagłębionych folderów, których nazw nie znamy (np. jest tak w instalatorach), możemy użyć

ForceDirectories('nazwa katalogu')

Aby usunąć katalog, który nie jest pusty, należy użyć:

uses ShellApi

function DelDir(dir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc  := FO_DELETE;
    fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
    pFrom  := PChar(dir + #0);
  end;
  Result := (0 = ShFileOperation(fos));
end;

4 komentarzy

ForceDirectories(C:\Programy\cos)

Stworzy wszystkie nieistniejące katalogi.

MkDir Działa tylko dla jednego katalogu np. Gdy chcemy utworzyć nowy katalog o nazwie "bezybez" w katalogu "temp" na dycku "c:" to niema problemu. MkDir('C:\Temp\Bezybez') ale jeżeli chcemy utworzyć taki katalog a nie mamy katalogu "c:\temp" wtedy program zwróci błąd że nie może utworzyć katalogu. Nie wiem jak to ominąć w prosty sposób, ja napisałem sobie swoją funkcję która sprawdza poszczególne katalogi od root-a i jezeli katalog nie istnieje to go zaklada.

U mnie nie chce dzialac RmDIr nawet przy zmianie atrybutu katalogu na normalny.

Folder musi być pusty...