52645.fb2
А потом обсудим.
// начало кода
{ 0 } var
{ 1 } Form1: TForm1;
{ 2 } Path : AnsiString; // путь к папке с программой
{ 3 } count : integer; // счетчик удалений
{ 4 }
{ 5 } implementation
{ 6 }
{ 7 } {$R *.dfm}
{ 8 }
{ 9 } function DelEmtyDir(Target : AnsiString):boolean;
{ 10 } var
{ 11 } Found : integer; // результат поиска ( 0 - файл найден )
{ 12 } SR : TSearchRec; // запись с параметрами файла
{ 13 } begin
{ 14 } Found := FindFirst(Target + '\*.*',$3F,SR);
{ 15 } result := true; // предположим что папка пуста.
{ 16 } WHILE Found = 0 DO
{ 17 } BEGIN
{ 18 } if (SR.Name <> '.')
{ 19 } and (SR.Name <> '..')
{ 20 } then
{ 21 } begin
{ 22 } // если это папка
{ 23 } if ((SR.Attr and $10) = $10 ) then
{ 24 } begin // рекурсивный вызов функции
{ 25 } if DelEmtyDir( Target+'\'+ SR.Name)
{ 26 } then
{ 27 } begin // удаление пустой папки
{ 28 } RmDir(Target+'\'+ SR.Name);
{ 29 } inc(count); // + 1 в счетчик
{ 30 } end;
{ 31 } end
{ 32 } else
{ 33 } begin // найден какой то файл
{ 34 } result := false; // значит папка не пуста.
{ 35 } FindClose(SR);
{ 36 } exit;
{ 37 } end;
{ 38 } end;
{ 39 } Found := FindNext(SR);
{ 40 } END;{DosError = 0}
{ 41 } FindClose(SR);
{ 42 } end;
{ 43 }
{ 44 } procedure TForm1.Button1Click(Sender: TObject);
{ 45 } var
{ 46 } Dir : AnsiString;