Inno Setup: Проверка каталога на пустоту

Задача: Нужна функция, которая позволит определить пустой указанный каталог или нет.
Инструментарий: Inno Setup (Pascal Script)
Решение: Для того чтобы определить пустой каталог или нет воспользуемся методами FindFirst/FindNext. (Функция FindFirst ищет файлы по указанным параметрам, возвращая первое соответствие (если найдено) в результат поиска. Функция FindNext находит следующий файл после успешного FindFirst)

[CODE]

function IsEmptyDir(Path: String): Boolean;
var
  FindRec: TFindRec;
begin
  Result := True;
  if FindFirst(Path + '\*', FindRec) then
  try
    repeat
      if (FindRec.Name <> '.') and (FindRec.Name <> '..') then
      begin
        Result := False
        exit;
      end;
    until not FindNext(FindRec);
  finally
    FindClose(FindRec);
  end;
end;

Использование:

begin
  if IsEmptyDir('C:\Temp') then
    MsgBox('Папка пустая', mbInformation, MB_OK)  
  else
    MsgBox('Папка не пустая', mbInformation, MB_OK)  
end;

PS: Если путь указывает на папку, которой нет — результат будет True.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *