Programowanie w języku Delphi » FAQ

Jak skasować wszystkie pliki z katalogu wyjątkiem np. a.txt oraz a.dat

Oto rozwiązanie tego problemu:

function IsSlash(const sText: String) : String;
begin
  { sprawdzenie, czy na koncu jest znak "\"}
  if sText[Length(sText)] <> '\' then
    Result := sText + '\' 
  else 
    Result := sText;
end;
 
procedure TMainForm.Button1Click(Sender: TObject);
var
  SR: TSearchRec;
  Found : Integer;
begin
  {  szukaj plikow ( wszystkiech ) w danym kataogu }
  Found := FindFirst(IsSlash(Edit1.Text) + '*.*', faAnyFile, SR);
  while (Found = 0) do
  begin
  { sprawdzenie jaka jest nazwa pliku - jezeli jest to a.txt lub a.dat -
   nie rob nic }
    if (SR.Name <> 'a.txt') and (SR.Name <> 'a.dat') then
      DeleteFile(IsSlash(Edit1.Text) + SR.Name);
 
    Found := FindNext(SR); // szukaj dalej
  end;
  FindClose(SR);
end;