Avatar billede easysoft_studios Nybegynder
23. maj 2002 - 18:49 Der er 1 kommentar og
1 løsning

Slette bestemte mapper og filer i en mappe

jeg vil prøve at lave et program som hurtigt kan slette de mapper, FrontPage laver til ens web-sites. de hedder alle sammen _vti_cnf, så jeg vil gerne lave programmet, så det løber mit web-steds-mappe igennem, og sletter alle de mapper der hedder _vti_cnf
Jeg har prøvet at ændre denne kode, som ellers sletter ALLE filer og mapper, men jeg kan ikke få det til at virke:
rocedure TForm1.DeleteFiles (const Path, Mask : string; recursive : boolean);
var
Result    : integer;
SearchRec : TSearchRec;
begin
Result := FindFirst(Path + Mask, faAnyFile - faDirectory, SearchRec);
while Result = 0 do
begin
  if not DeleteFile (Path + SearchRec.name) then
  begin
      FileSetAttr (Path + SearchRec.name, 0); { reset all flags }
      DeleteFile (Path + SearchRec.name);
  end;
  Result := FindNext(SearchRec);
end;
FindClose(SearchRec);

if not recursive then
  exit;

Result := FindFirst(Path + '*.*', faDirectory, SearchRec);
while Result = 0 do
begin
  if (SearchRec.name <> '.') and (SearchRec.name <> '..') then
  begin
      FileSetAttr (Path + SearchRec.name, faDirectory);
      DeleteFiles (Path + SearchRec.name + '\', Mask, TRUE);
      RmDir (Path + SearchRec.name);
  end;
  Result := FindNext(SearchRec);
end;
FindClose(SearchRec);
end;
Avatar billede hreiff Nybegynder
24. maj 2002 - 13:37 #1
Du kan lave en ny procedure, som kun kigger på Directory, og som kalder DeleteFiles når den finder _vti_conf, dvs den sletter alle filer i det directory og de underliggende.

Procedure TForm1.DelDir (const Path: string);
var
  Result    : integer;
  SearchRec : TSearchRec;
begin
  Result := FindFirst(Path + '*_vti_cnf.*', faDirectory, SearchRec);
  while Result = 0 do
  begin
    if (SearchRec.name <> '.') and (SearchRec.name <> '..') then
    begin
      FileSetAttr (Path + SearchRec.name, faDirectory);
      DeleteFiles (Path + SearchRec.name, '*.*', TRUE);
      RmDir (Path + SearchRec.name);
    end;
    Result := FindNext(SearchRec);
  end;
  FindClose(SearchRec);
end;
Avatar billede easysoft_studios Nybegynder
10. juli 2002 - 02:02 #2
virker fino.. takker :) unskyld den lange svaretid...
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