@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 для работы с файловой системой.