@krista
Добрый день!
Для того чтобы проверить пуста ли папка нужно прочесть ее содержимое
Сделать это можно следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
function TargetDirIsEmpty(APath: String): Boolean;
var SearchRec: TSearchRec;
begin
Result := True;
APath:= IncludeTrailingPathDelimiter(APath);
if FindFirst(APath+ '*.*', faAnyFile, SearchRec) = 0 then
repeat
if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
begin
Result := False;
FindClose(SearchRec);
Exit;
end;
until
FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
if TargetDirIsEmpty('C:\Temp') then
ShowMessage('Папка пуста') else
ShowMessage('Папка не пуста');
|
@krista
Для проверки, является ли папка пустой в Delphi, можно использовать следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
uses System.SysUtils, System.IOUtils;
function IsFolderEmpty(const FolderPath: string): Boolean;
var
SearchRec: TSearchRec;
begin
Result := FindFirst(TPath.Combine(FolderPath, '*.*'), faAnyFile, SearchRec) = 0;
if Result then
begin
Result := not ((SearchRec.Name = '.') or (SearchRec.Name = '..'));
if Result then
Result := FindNext(SearchRec) <> 0;
end;
FindClose(SearchRec);
end;
|
Эта функция проверяет, есть ли в папке любые файлы или подпапки, кроме текущей и родительской папок. Если такие файлы или подпапки есть, то функция вернет False, иначе вернет True, что означает, что папка пуста. Указанный код использует System.IOUtils для работы с файловой системой.