//Скрипт проверяет каталог на предмет наличия старых файлов. Старые файлы удаляются.
// Удаляются также пустые каталоги вплоть до проверяемого.

const DaysLimit = 7;// Количество дней, которое файл может находиться в этом каталоге.
                    // Если он старее, чем "сегодня - 7 дней", то файл будет удален.

const DirName = 'c:\mail\in'; //Сканируемый каталог. Если он пуст, то он будет удален

function ClearAndDelDirs1(const DirName :string; Days :integer) :boolean;
var List :Tstringlist;
    List1 :Tstringlist;
    i :integer;
    k :integer;

begin
   Result := false;
   List := tstringlist.create;
   List1 := Tstringlist.create;
   try
     GetDirList(DirName,List,{'????-??-??'} '*',true,0);

     for i := List.count-1 downto 0 do begin
       If ClearAndDelDirs(List[i],Days)
       then List.Delete(i);
     end;

     GetFileList(DirName, List1,'*',true,false);

     for i := List1.count-1 downto 0 do
     begin
         if FileDateTime(list1[i])<date()-Days
         then begin
           DeleteFile(List1[i]);
           List1.delete(i);
         end;
     end;

     if (list1.count=0) and (List.count=0)
     then begin
       DeleteDir(DirName);
       Result := true;
     end;

   finally
     LIst1.free;
     List.free;
   end;
end;

begin

  ClearAndDelDirs1(DirName,7);

end.
