unit
Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 =
class
(TForm)
ListBox1: TListBox;
private
public
end
;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure
ScanDir(StartDir:
string
; Mask:
string
; List: TStrings);
var
SearchRec: TSearchRec;Edit1: TEdit;
begin
StartDir:='C:\';
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
;
end
.