
13.09.2011, 23:13
|
 |
.
|
|
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
|
|
Лови каку.
Код:
unit Unit15;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
List: TListBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
function FindFile(Folder, Mask : String; var List : TStringList) : Boolean; stdcall; external 'Find.dll';
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
s : TStringList;
begin
s := TStringList.Create;
try
if FindFile('d:\borland\work\games\', '*.*', s) then
List.Items.AddStrings(s);
finally
s.Free;
end;
end;
end.
//------------------------------------------
library find;
uses
Classes, SysUtils;
function FindFile(Folder, Mask : String; var List : TStringList) : Boolean; stdcall;
var
SR : TSearchRec;
St : String;
begin
Result := False;
St := IncludeTrailingPathDelimiter(Folder);
if FindFirst(St + Mask, faAnyFile, SR) = 0 then
try
repeat
if ((SR.Attr and faDirectory) = 0) and // Файл, а не папка?
SameFileName(ExtractFileExt(SR.Name), '.exe') then // Расширение - exe?
List.Add(St + SR.Name); // Если да - добавляем
until FindNext(SR) <> 0;
finally
Result := True;
FindClose(SR);
end;
end;
exports
FindFile;
end.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
|