Q&A

  • 파일 찾기 소스 인데 자세하게 설명해주세요.
밑의 소스좀 자세하게좀 설명해주세요.

파일 찾기 소스 인데.

이해가 안가는 부분이 여러 잇네요..

자세하게요 ^ㅡ^ 부탁드립니다.


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.
0  COMMENTS