Я ищу метод или компонент, производящий поиск каких-либо файлов
на винчестере, например, (*.exe)...
unit Audit1;
interfaceuses windos;
var
dest: string;
procedure dorecurse(dir: string);
implementation{$R *.DFM}procedure Process(dir: string; Searchrec: tsearchrec);
begin
showmessage(Searchrec.name);
case Searchrec.attr of
$10:
if (searchrec.name <> '.') and (searchrec.name <> '..') thenbegin
dorecurse(dir + '\' + searchrec.name);
writeln(dir);
end;
end;
end;
procedure Dorecurse(dir: string);
var
Searchrec: Tsearchrec;
pc: array[0..79] of Char;
begin
StrPCopy(pc, dir + '\*.*');
FindFirst(pc, FaAnyfile, SearchRec);
Process(dir, SearchRec);
while FindNext(SearchRec) <> -18 dobegin
Process(dir, SearchRec);
end;
end;
procedure startsearch;
begin
dorecurse(paramstr(1));
end;
begin
startsearch;
end.
Перевод контента на русский язык:
Это программное обеспечение Delphi, использующее Windows API для рекурсивного поиска файлов в указанной папке и ее подпапках.
Процедура Dorecurse принимает путь к директории в качестве входных данных и использует функции FindFirst и FindNext для поиска всех файлов (включая подпапки) с помощью wildcard-шаблона (.). Процедура Process вызывается для каждого найденного файла, чтобы отобразить имя файла с помощью ShowMessage.
Содержание кода:
Процедура Dorecurse:
Принимает путь к директории в качестве входных данных.
Использует StrPCopy для создания копии пути к директории с wildcard-шаблоном (.).
Вызывает FindFirst, чтобы найти первый файл, соответствующий шаблону.
Если файл найден, вызывает Process, чтобы обработать файл.
Затем enters цикл, продолжающийся до тех пор, пока не будут найдены более файлов (т.е., FindNext возвращает -18).
Процедура Process:
Принимает путь к директории и запись Tsearchrec в качестве входных данных.
Отображает имя файла с помощью ShowMessage.
Если файл не является точкой (.) или родительской папкой (...), рекурсивно вызывает Dorecurse, чтобы поискать файлы в ее подпапках.
Процедура StartSearch:
Принимает первый аргумент командной строки в качестве входных данных, который должен быть путем к директории, откуда начать поиск.
Вызывает Dorecurse с указанной директорией.
Для использования этой программы компилируйте ее и запустите из командной строки, передавая путь к директории в качестве аргумента. Например:
audit1.exe C:\path\to\directory
Это будет поискать все файлы в указанной папке и ее подпапках.
Обратите внимание, что эта программа использует функцию ShowMessage для отображения имён файлов, что может быть медленным для больших количеств файлов. Вам может потребоваться более эффективный метод, например, запись имён файлов в журнал или отображение их в компоненте GUI.
В статье описывается программный код на языке Pascal, который реализует поиск файлов на винчестере с помощью рекурсивного вызова процедуры для обхода каталогов и поиска файлов по шаблону (*.exe).
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.