Больше по служебной необходимости, и воле случая, чем по собственному желанию.
Инет отсутствовал, компы нормальные все заболели, а утилиту писать надо. Ще було, на том и писали.
Наконец-то нормальный поиск файла, где маска файла работает как надо (как в DOS) и не принимает, например, расширение
*.htm
и *.html
за одно и то же. C# мне не удалось этому очевидному решению научить, конечно, можно потом по выборке прогнать регулярное выражение, но оно тоже плохо срабатывает, упускает некоторые случаи, например, если имя файла начинается с расширения (т.е. на файл .html
оно не сработает):В Lazarus все работает из коробки:

program testfind;
uses Classes, SysUtils, FileUtil;
var
lstFiles:TStringList;
i: Integer;
begin
lstFiles := TStringList.Create;
FindAllFiles(lstFiles, 'C:\Temp\Test', '*.htm', true);
i:=0;
while i < lstFiles.Count do begin
WriteLn(lstFiles[i]);
inc(i);
end;
WriteLn ('Found: ',lstFiles.Count);
WriteLn ('Press Enter');
ReadLn();
lstFiles.Free();
end.
Пример и каталог с тестовыми файлами на GitHub
UPD: Ссылка на мануал
Это репост с сайта http://tolik-punkoff.com
Оригинал: https://tolik-punkoff.com/2022/11/24/poi