...
Ну напиши прогу...
Берёшь Delphi
Кинь на форму 2 TButton, 2 TEdit и 1 TMemo.
У обоих TButton создай пустые обработчики событий OnClick.
Выставь соответствующие обработчики нажатий обоих кнопок.
Потом просто вставь в юнит этот исходник и в Edit1.Text впиши '*.*', в Edit2.Text - 'c:\all_shit\' и нажми Button1 - это и будет поиск. (Вводить без одинарных кавычек)
При нажатии Button2 появится окошко выбора каталога
//---
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,
FileCtrl;
type
TForm1 = class(TForm)
Edit1: TEdit; // что искать
Edit2: TEdit; // где искать
Memo1: TMemo; // результат поиска
Button1: TButton; // кнопка Поиск
Button2: TButton; // кнопка Обзор
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
FileName: string;
cDir: string;
n: integer;
procedure Find;
var
SearchRec: TSearchRec;
begin
GetDir(0,cDir);
if cDir[length(cDir)] <> '\' then cDir := cDir+'\';
if FindFirst(FileName, faAnyFile,SearchRec) = 0 then
repeat
if (SearchRec.Attr and faAnyFile) = SearchRec.Attr then
begin
Form1.Memo1.Lines.Add('<A href = "'+cDir+SearchRec.Name+'">'+SearchRec.Name+'</A>');
n := n + 1;
end;
until FindNext(SearchRec) <> 0;
if FindFirst('*', faAnyFile, SearchRec) = 0 then
repeat
if (SearchRec.Attr and faDirectory) = faDirectory then
if SearchRec.Name[1] <> '.' then
begin
ChDir(SearchRec.Name);
Find;
ChDir('..');
end;
until FindNext(SearchRec) <> 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if not DirectoryExists(Edit2.Text) then
begin
ShowMessage('Каталог указан неверно.');
Edit2.SetFocus;
exit;
end;
Button1.Enabled := False;
Label4.Caption := '';
Label4.Repaint;
Memo1.Clear;
Label4.Caption := '';
FileName := Edit1.Text;
cDir := Edit2.Text;
n:=0;
ChDir(cDir);
Find;
if n = 0 then
ShowMessage('Файлов, удовлетворяющих критерию поиска нет.')
else Label4.Caption := 'Найдено файлов:' + IntToStr(n);
Button1.Enabled := True;
end;
function GetPath(mes: string):string;
var
Root: string;
pwRoot : PWideChar;
Dir: string;
begin
Root := '';
GetMem(pwRoot, (Length(Root)+1) * 2);
pwRoot := StringToWideChar(Root,pwRoot,MAX_PATH*2);
if SelectDirectory(mes, pwRoot, Dir)
then
if length(Dir) = 2
then GetPath := Dir+'\'
else GetPath := Dir
else
GetPath := '';
end;
procedure TForm1.Button2Click(Sender: TObject);
var
Path: string;
begin
Path := GetPath('Выберите папку');
if Path <> ''
then Edit2.Text := Path;
end;
end.
//---