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.

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