52645.fb2
{ 15 } procedure Button1Click(Sender: TObject);
{ 16 } procedure FormCreate(Sender: TObject);
{ 17 } procedure Button2Click(Sender: TObject);
{ 18 } private
{ 19 } { Private declarations }
{ 20 } public
{ 21 } { Public declarations }
{ 22 } end;
{ 23 }
{ 24 } var
{ 25 } Form1: TForm1;
{ 26 } Path : AnsiString; // путь к папке с программой
{ 27 } Dir : AnsiString;
{ 28 } CCount : integer; // счетчик удалений
{ 29 }
{ 30 } implementation
{ 31 }
{ 32 } {$R *.dfm}
{ 33 }
{ 34 } function ScanEmtyDir(Target : AnsiString):boolean;
{ 35 } var
{ 36 } Found : integer; // результат поиска ( 0 - файл найден )
{ 37 } SR : TSearchRec; // запись с параметрами файла
{ 38 } begin
{ 39 } Found := FindFirst(Target + '\*.*',$3F,SR);
{ 40 } result := true; // предположим что папка пуста.
{ 41 } WHILE Found = 0 DO
{ 42 } BEGIN
{ 43 } if (SR.Name <> '.')
{ 44 } and (SR.Name <> '..')
{ 45 } then
{ 46 } begin
{ 47 } result := false; // значит папка не пуста.
{ 48 } // если это папка
{ 49 } if ((SR.Attr and $10) = $10 ) then
{ 50 } begin // рекурсивный вызов функции
{ 51 } if ScanEmtyDir( Target+'\'+ SR.Name)
{ 52 } then // удаление пустой папки
{ 53 } begin
{ 54 } with Form1.CheckListBox1 do
{ 55 } Checked[Items.Add(Target+'\'+ SR.Name)] := true;
{ 56 } end;
{ 57 } end;
{ 58 } end;
{ 59 } Found := FindNext(SR);
{ 60 } END;{DosError = 0}
{ 61 } FindClose(SR);
{ 62 } end;
{ 63 }