Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Поиск на винчестере

Delphi , Файловая система , Файлы

Поиск на винчестере

Я ищу метод или компонент, производящий поиск каких-либо файлов на винчестере, например, (*.exe)...


unit Audit1;
interface

uses 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 <> '..') then
      begin
        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 do
  begin
    Process(dir, SearchRec);
  end;
end;

procedure startsearch;
begin
  dorecurse(paramstr(1));
end;

begin
  startsearch;
end.

Перевод контента на русский язык:

Это программное обеспечение Delphi, использующее Windows API для рекурсивного поиска файлов в указанной папке и ее подпапках.

Процедура Dorecurse принимает путь к директории в качестве входных данных и использует функции FindFirst и FindNext для поиска всех файлов (включая подпапки) с помощью wildcard-шаблона (.). Процедура Process вызывается для каждого найденного файла, чтобы отобразить имя файла с помощью ShowMessage.

Содержание кода:

  1. Процедура Dorecurse:
    • Принимает путь к директории в качестве входных данных.
    • Использует StrPCopy для создания копии пути к директории с wildcard-шаблоном (.).
    • Вызывает FindFirst, чтобы найти первый файл, соответствующий шаблону.
    • Если файл найден, вызывает Process, чтобы обработать файл.
    • Затем enters цикл, продолжающийся до тех пор, пока не будут найдены более файлов (т.е., FindNext возвращает -18).
  2. Процедура Process:
    • Принимает путь к директории и запись Tsearchrec в качестве входных данных.
    • Отображает имя файла с помощью ShowMessage.
    • Если файл не является точкой (.) или родительской папкой (...), рекурсивно вызывает Dorecurse, чтобы поискать файлы в ее подпапках.
  3. Процедура StartSearch:
    • Принимает первый аргумент командной строки в качестве входных данных, который должен быть путем к директории, откуда начать поиск.
    • Вызывает Dorecurse с указанной директорией.

Для использования этой программы компилируйте ее и запустите из командной строки, передавая путь к директории в качестве аргумента. Например:

audit1.exe C:\path\to\directory

Это будет поискать все файлы в указанной папке и ее подпапках.

Обратите внимание, что эта программа использует функцию ShowMessage для отображения имён файлов, что может быть медленным для больших количеств файлов. Вам может потребоваться более эффективный метод, например, запись имён файлов в журнал или отображение их в компоненте GUI.

В статье описывается программный код на языке Pascal, который реализует поиск файлов на винчестере с помощью рекурсивного вызова процедуры для обхода каталогов и поиска файлов по шаблону (*.exe).


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Файлы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 13:27:38/0.0053830146789551/1