Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
파일 찾기..
어느 디렉토리안에서 파일을 찾는것이 아니라.
드라이브에 내가 원하는 파일을 모조리 찾아내고 싶은데..
FINDFIRST 라는 함수가 있는데.. 이것은 디렉토리안에 있는것만이네여..
드라이브 전체에서 찾으려면..
드라이브에 있는 모든 디렉토리 알아네서.. 저기 FINDFIRST로 찾아야 하는건가요??
(이건뭐지??)
하드에 있는거 찾고 싶은데..
1
COMMENTS
김영대
•
1999.11.12 19:31
황현동 wrote:
> 어느 디렉토리안에서 파일을 찾는것이 아니라.
> 드라이브에 내가 원하는 파일을 모조리 찾아내고 싶은데..
> FINDFIRST 라는 함수가 있는데.. 이것은 디렉토리안에 있는것만이네여..
> 드라이브 전체에서 찾으려면..
> 드라이브에 있는 모든 디렉토리 알아네서.. 저기 FINDFIRST로 찾아야 하는건가요??
> (이건뭐지??)
> 하드에 있는거 찾고 싶은데..
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
FScanAborted: Boolean;
public
{ Public declarations }
function ScanDrive(root, filemask: String; hitlist: TStrings): Boolean;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
function TForm1.ScanDrive(root, filemask: String; hitlist: TStrings): Boolean;
function ScanDirectory(var path: String): Boolean;
var
SRec: TSearchRec;
pathlen: Integer;
res: Integer;
begin
Label1.caption := path;
pathlen:= Length(path);
res := FindFirst(path+filemask, faAnyfile, SRec);
if res = 0 then
try
while res = 0 do
begin
hitlist.Add(path + SRec.Name);
res := FindNext(SRec);
end;
finally
FindClose(SRec)
end;
Application.ProcessMessages;
Result := not (FScanAborted or Application.Terminated);
if not Result then Exit;
res := FindFirst(path+'*.*', faDirectory, SRec);
if res = 0 then
try
while (res = 0) and Result do
begin
if ((Srec.Attr and faDirectory) = faDirectory) and
(Srec.name <> '.') and
(Srec.name <> '..') then
begin
path := path + SRec.name + '';
Result := ScanDirectory(path);
SetLength(path, pathlen);
end;
res := FindNext(SRec);
end;
finally
FindClose(SRec)
end;
end;
begin
FScanAborted := False;
Screen.Cursor := crHourglass;
try
Result := ScanDirectory(root);
finally
Screen.Cursor := crDefault
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ch: Char;
root: String;
begin
root := 'C:';
for ch := 'A' to 'Z' do
begin
root[1] := ch;
case GetDriveType(Pchar(root)) Of
DRIVE_FIXED, DRIVE_REMOTE:
if not ScanDrive(root, edit1.text, listbox1.items) then
Break;
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
fScanAborted := True;
end;
end.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
구민오
1999.11.12 20:08
0
COMMENTS
/
0
LIKES
훅프로시저 안에서 변수 공유 하려면?
mobydick
•
1999.11.12 18:47
1
COMMENTS
/
0
LIKES
(질문) 텍스트박스에서 숫자만 입력받을려면?.
김영대
•
1999.11.12 19:16
mobydick wrote: > 에디터마스크를 쓰지않고 숫자만 입력받을려고 하는데 방법을 모르겠습니다. > 문자가...
나도질문
•
1999.11.12 08:58
3
COMMENTS
/
0
LIKES
Treeview에서 DB연결하기 [급질문!]
오현수
•
1999.11.12 09:42
나도질문 wrote: > 우선 이 질문을 보시는분께 감사드립니다. > > 델파이를 공부한지 얼마않되서그런데...
나도질문
•
1999.11.12 21:26
오현수 wrote: > 나도질문 wrote: > > 우선 이 질문을 보시는분께 감사드립니다. > > > > 델파이를 공...
오현수
•
1999.11.15 00:28
[나도 질문]님 보세요. 원리는 다음과 같습니다. TTreeView의 노드정보는 TreeNode에 들어...
황현동
•
•
1999.11.12 08:50
1
COMMENTS
/
1
LIKES
파일 찾기..
어느 디렉토리안에서 파일을 찾는것이 아니라. 드라이브에 내가 원하는 파일을 모조리 찾아내고 싶은데.. FINDFIRST 라는 함수가 있는데.. 이것은 디렉토리안에 있는것만이네여.. 드라이브 전체에서 찾으려면.. 드라이브에 있는 모든 디렉...
김영대
•
1999.11.12 19:31
황현동 wrote: > 어느 디렉토리안에서 파일을 찾는것이 아니라. > 드라이브에 내가 원하는 파일을 모조리...
정순보
1999.11.12 05:19
0
COMMENTS
/
0
LIKES
C++ 에서 짠 winsock과 통신이 잘 안되요... 너무 급합니다. 꼭 부탁드려요.
김수진
•
1999.11.12 03:23
1
COMMENTS
/
0
LIKES
Midas에서 한글이 깨져잉~~
이재식
•
1999.11.12 05:18
김수진 wrote: > 데이타 베이스는 Paradox이고요 델파이는 5.0이고요... > Midas수정하거나 저장하면 한...
초보자
•
1999.11.12 03:08
4
COMMENTS
/
0
LIKES
DBcombobox에 대해서 ...
이재식
•
1999.11.12 06:00
초보자 wrote: > 안녕하세요. > 델파이 초보자입니다. > 죄송합니다만 DBcombobox에 대해서 물어보고 싶...
임형호
•
1999.11.12 23:32
이재식 wrote: > 초보자 wrote: > > 안녕하세요. > > 델파이 초보자입니다. > > 죄송합니다만 DBcombob...
이재식
•
1999.11.13 20:33
임형호님께서 말씀하신것이 맞습니다. 저의 경우는 그 필드가 주키 내지 유일성 속성이 있으면 되는데, ...
권경부
•
1999.11.12 04:52
안녕하세요.. TDBLookupCombobox를 써보세요.... 쩝... 초보자 wrote: > 안녕하세요. > 델파이 초보...
임형호
•
1999.11.12 02:41
2
COMMENTS
/
0
LIKES
버튼클릭 이벤트에 대해서...
BisBuck
•
1999.11.12 07:05
임형호 wrote: > 제가 프로그램을 작성하다보니 가끔은 중간에 다른 버튼이벤트를 실행해야할 필요성이 있...
김종호
•
1999.11.12 03:41
임형호 wrote: > 제가 프로그램을 작성하다보니 가끔은 중간에 다른 버튼이벤트를 실행해야할 필요성이 있...
조복기
•
1999.11.12 02:20
1
COMMENTS
/
0
LIKES
이미지 축소/확대 저장방법에 대해서..
이정욱
•
1999.11.12 08:06
StetchBlt 함수를 참고하세요. ^^ 물론 복기님 실력이면 이 말만 해주면 돼죠? ^^ 조복기 wrote: > ...
이영선
•
1999.11.12 01:27
4
COMMENTS
/
0
LIKES
ActiveForm과 Midas에서의 에러문제....
bluechip
•
1999.11.14 06:03
말씀하신 내용은 MIDAS만 해당하는 것은 아닙니다 델파이로 데이타 베이스 프로그램을 작성할때 Session ...
bluechip
•
1999.11.14 06:02
말씀하신 내용은 MIDAS만 해당하는 것은 아닙니다 델파이로 데이타 베이스 프로그램을 작성할때 Session ...
bluechip
•
1999.11.14 06:02
말씀하신 내용은 MIDAS만 해당하는 것은 아닙니다 델파이로 데이타 베이스 프로그램을 작성할때 Session ...
bluechip
•
1999.11.14 06:02
말씀하신 내용은 MIDAS만 해당하는 것은 아닙니다 델파이로 데이타 베이스 프로그램을 작성할때 Session ...
델파이초보여요
1999.11.12 00:34
0
COMMENTS
/
0
LIKES
앗 죄송! 다시질문드립니다. 델파이 3.0의 socket
델파이초보여요
1999.11.12 00:26
0
COMMENTS
/
0
LIKES
분류먼저 해주시길 부탁드립니다.
뽀또
1999.11.11 23:50
0
COMMENTS
/
0
LIKES
분류먼저 해주시길 부탁드립니다.
안명호
•
1999.11.11 23:24
1
COMMENTS
/
0
LIKES
DBGrid....
배불뚝
•
1999.11.30 19:44
query 결과를 dbgrid같은 data control component 에 출력하려면 중간에 datasource가 필요한 것은 아시지...
박성훈
•
1999.11.11 23:10
1
COMMENTS
/
0
LIKES
TStrings.Add와 TStrings.Text
TeamX
•
1999.11.12 00:02
제가 잘은 모르지만.... 에러의 이유는 OOP(Object Oriented Programming)과 관련이 있습니다. 에러...
세리
•
1999.11.11 22:41
1
COMMENTS
/
0
LIKES
이유가 뭐죠?(초보질문1)
TeamX
•
1999.11.11 23:50
글쎄요.... 델파이데모버전에서는 그러는걸 봤는데(일부러 IDE가 더있어야 사용가능하게 해놓았죠) ...
이영근
•
1999.11.11 22:21
1
COMMENTS
/
0
LIKES
이정욱님 SDK 에 대해서...
이정욱
•
1999.11.12 08:08
SDK (Source Developement Kit) 입니다. 만약 DLL로 콘트롤을 할수 있으면 아마도 *.h 등으로 헤더파일이 ...
임형호
1999.11.11 22:04
0
COMMENTS
/
0
LIKES
정렬에 대해 물어보신 분께.....
델초
•
1999.11.11 21:52
1
COMMENTS
/
0
LIKES
install 쉴드는 어디에...?
임형호
•
1999.11.11 22:06
델초 wrote: > program을 다 만들고 나서 인스톨쉴드란게 있다기에 찾아보니 저한테는 설치가 안되었거든...
김준호
•
1999.11.11 21:24
1
COMMENTS
/
0
LIKES
정렬을 못하겠어요?
박성훈
•
1999.11.11 23:15
김준호 wrote: > 테이블을 정렬하려고 하는데 잘 되지 안아요.. > 이름이나 번호로 정렬하는것 좀 가르쳐...
황현동
1999/11/12 08:50
Views
291
Likes
1
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 어느 디렉토리안에서 파일을 찾는것이 아니라.
> 드라이브에 내가 원하는 파일을 모조리 찾아내고 싶은데..
> FINDFIRST 라는 함수가 있는데.. 이것은 디렉토리안에 있는것만이네여..
> 드라이브 전체에서 찾으려면..
> 드라이브에 있는 모든 디렉토리 알아네서.. 저기 FINDFIRST로 찾아야 하는건가요??
> (이건뭐지??)
> 하드에 있는거 찾고 싶은데..
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
FScanAborted: Boolean;
public
{ Public declarations }
function ScanDrive(root, filemask: String; hitlist: TStrings): Boolean;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
function TForm1.ScanDrive(root, filemask: String; hitlist: TStrings): Boolean;
function ScanDirectory(var path: String): Boolean;
var
SRec: TSearchRec;
pathlen: Integer;
res: Integer;
begin
Label1.caption := path;
pathlen:= Length(path);
res := FindFirst(path+filemask, faAnyfile, SRec);
if res = 0 then
try
while res = 0 do
begin
hitlist.Add(path + SRec.Name);
res := FindNext(SRec);
end;
finally
FindClose(SRec)
end;
Application.ProcessMessages;
Result := not (FScanAborted or Application.Terminated);
if not Result then Exit;
res := FindFirst(path+'*.*', faDirectory, SRec);
if res = 0 then
try
while (res = 0) and Result do
begin
if ((Srec.Attr and faDirectory) = faDirectory) and
(Srec.name <> '.') and
(Srec.name <> '..') then
begin
path := path + SRec.name + '';
Result := ScanDirectory(path);
SetLength(path, pathlen);
end;
res := FindNext(SRec);
end;
finally
FindClose(SRec)
end;
end;
begin
FScanAborted := False;
Screen.Cursor := crHourglass;
try
Result := ScanDirectory(root);
finally
Screen.Cursor := crDefault
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ch: Char;
root: String;
begin
root := 'C:';
for ch := 'A' to 'Z' do
begin
root[1] := ch;
case GetDriveType(Pchar(root)) Of
DRIVE_FIXED, DRIVE_REMOTE:
if not ScanDrive(root, edit1.text, listbox1.items) then
Break;
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
fScanAborted := True;
end;
end.