소스 첨부할께여. ^^ 너무 번거롭게 해서 지송해여.. 지가 워낙 처버라..
디렉토리리스트박스를 보시면여 winnt의 디렉토리목록이 쫙~악 나오자나여
폴더 아래에 폴더가 있구 그 폴더에 또 폴더가 들어가있자나여...
그니깐 에디트에 찾을 폴더명을 넣으면은 그 winnt의 폴더 전체를 검색하는거져
그래서 포커스를 위치하고.. ^^
이건 FindFirst, FindNext, FindClose함수를 사용하시면 됩니다. 파일이나 디렉토리 검색하거나 목록구할때 자주 쓰이는거죠... TDirectoryListBox, TFileListBox, ... 등에서도 이 함수를 사용해서 목록을 구하는 겁니다. VCL소스도 한번씩 봐보세요... 많이 도움이 될겁니다... 이와 관련된 예제도 여기에서 검색해보시면 많이 있습니다... 질문하시기 전에 먼저 검색부터해보세요...
function TForm1.SearchFolder(const StartFolder, FolderName: string; var FoundFolderPath: string): Boolean;
var
Found: Boolean;
function ScanFolder(const StartScanFolder: string): Boolean;
var
FileRec: TSearchRec;
begin
Result := False;
if FindFirst(StartScanFolder + '*.*', faAnyFile, FileRec) = 0 then
begin
repeat
if Found then
Break;
if (FileRec.Name[1] = '.') then
Continue;
if (FileRec.Attr and faDirectory) <> faDirectory then
Continue;
if CompareText(FileRec.Name, FolderName) = 0 then
begin
Result := True;
FoundFolderPath := StartScanFolder + FileRec.Name;
Found := True;
Break;
end;
Result := ScanFolder(StartScanFolder + FileRec.Name + '');
until FindNext(FileRec) <> 0;
FindClose(FileRec);
end;
end;
begin
Found := False;
Result := ScanFolder(StartFolder);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
FoundFolderPath: string;
begin
if SearchFolder('C:Windows', 'InstallTemp', FoundFolderPath) then
begin
DirectoryListBox1.Directory := FoundFolderPath;
DirectoryListBox1.OpenCurrent;
end
else
ShowMessage('폴더를 발견할수 없습니다.');
end;
쩝~ WinRar가 없네요... ㅠㅠ
암튼 무슨 말씀이신지는 알겠네요...
이건 FindFirst, FindNext, FindClose함수를 사용하시면 됩니다. 파일이나 디렉토리 검색하거나 목록구할때 자주 쓰이는거죠... TDirectoryListBox, TFileListBox, ... 등에서도 이 함수를 사용해서 목록을 구하는 겁니다. VCL소스도 한번씩 봐보세요... 많이 도움이 될겁니다... 이와 관련된 예제도 여기에서 검색해보시면 많이 있습니다... 질문하시기 전에 먼저 검색부터해보세요...
function TForm1.SearchFolder(const StartFolder, FolderName: string; var FoundFolderPath: string): Boolean;
var
Found: Boolean;
function ScanFolder(const StartScanFolder: string): Boolean;
var
FileRec: TSearchRec;
begin
Result := False;
if FindFirst(StartScanFolder + '*.*', faAnyFile, FileRec) = 0 then
begin
repeat
if Found then
Break;
if (FileRec.Name[1] = '.') then
Continue;
if (FileRec.Attr and faDirectory) <> faDirectory then
Continue;
if CompareText(FileRec.Name, FolderName) = 0 then
begin
Result := True;
FoundFolderPath := StartScanFolder + FileRec.Name;
Found := True;
Break;
end;
Result := ScanFolder(StartScanFolder + FileRec.Name + '');
until FindNext(FileRec) <> 0;
FindClose(FileRec);
end;
end;
begin
Found := False;
Result := ScanFolder(StartFolder);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
FoundFolderPath: string;
begin
if SearchFolder('C:Windows', 'InstallTemp', FoundFolderPath) then
begin
DirectoryListBox1.Directory := FoundFolderPath;
DirectoryListBox1.OpenCurrent;
end
else
ShowMessage('폴더를 발견할수 없습니다.');
end;
^^ 항상 즐코하세요...