
18.05.2011, 13:03
|
|
Прохожий
|
|
Регистрация: 14.05.2011
Сообщения: 14
Репутация: 10
|
|
Вот, сваял... Не пойму что не так...
Код:
unit Component1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, Menus, ComCtrls, FileCtrl;
type
TComponent1 = class(TComponent)
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
published
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TComponent1]);
end;
{ WWW }
constructor Create(AOwner:TComponents);
begin
inherited Create(AOwner);
Options := Options + [ofFileMustExist, ofPathMustExist];
procedure ScanDir(StartDir: string; Mask: string; List: TStrings);
var
SearchRec: TSearchRec;
begin
if Mask = '' then
Mask := '*.*';
if StartDir[Length(StartDir)] <> '\' then
StartDir := StartDir + '\';
if FindFirst(StartDir + Mask, faAnyFile, SearchRec) = 0 then
begin
repeat Application.ProcessMessages;
if (SearchRec.Attr and faDirectory) <> faDirectory then
List.Add(StartDir + SearchRec.Name)
else if (SearchRec.Name <> '..') and (SearchRec.Name <> '.')then
begin
List.Add(StartDir + SearchRec.Name + '\');
ScanDir(StartDir + SearchRec.Name + '\', Mask, List);
end;
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Clear;
ScanDir('Z:\Downloads', '*.*', ListBox1.Items);
ListBox1.Items.SaveToFile('Z:\Dir.txt');
Close;
end;
end;
end.
|