밑의 소스좀 자세하게좀 설명해주세요.
파일 찾기 소스 인데.
이해가 안가는 부분이 여러 잇네요..
자세하게요 ^ㅡ^ 부탁드립니다.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure FilesSearch( Directory, SearchName: String );
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FilesSearch( Directory, SearchName: String );
var SR : TSearchRec;
R : integer;
begin
if Directory[Length(Directory)] <> '' then Directory := Directory + '';
R := Sysutils.FindFirst(Directory + SearchName, faAnyFile, sr);
while R = 0 do
begin
if (SR.Attr <> faDirectory) and (SR.Name[1] <> '.') then
if sr.FindData.cAlternateFileName <> '' then
ListBox1.Items.Add(Directory + sr.FindData.cAlternateFileName)
else
ListBox1.Items.Add(Directory + sr.FindData.cFileName);
//아래 라인은 search라는 외부 변수를 만들고 취소버튼을 누를경우 searchcheck:= False 한 경우이다
//if searchcheck = False then Exit;
Application.ProcessMessages;
R := Sysutils.FindNext(sr);
end;
SysUtils.FindClose(Sr);
if FindFirst(Directory + '*.*', faDirectory, SR) = 0 then
begin
repeat
if ((Sr.Attr and faDirectory) = faDirectory) and (SR.Name[1]<>'.') then
begin
//아래 라인은 search라는 외부 변수를 만들고 취소버튼을 누를경우 searchcheck:= False 한 경우이다
//if searchcheck = False then Exit;
FilesSearch(Directory+SR.Name+'', SearchName); // 재귀호출
end;
Application.ProcessMessages;
until (FindNext(SR) <> 0);
end;
SysUtils.FindClose(sr);
end;
//사용예) '*.doc', 'abc.???', 'a*.txt'..등등..
//윈도그즈에서 검색하는 형태로 하실 수 있습니다.
procedure TForm1.Button1Click(Sender: TObject);
var Dir: String;
begin
ListBox1.Clear;
Dir:= 'c:';
FilesSearch(Dir, Edit1.Text);
end;
end.