文件查找问题!(100分)

  • 主题发起人 主题发起人 lwluser
  • 开始时间 开始时间
L

lwluser

Unregistered / Unconfirmed
GUEST, unregistred user!
如果 C:/ 下有很多目录,每个目录中又有子目录,我想取得C盘上所有文本文件(包含子目录中的文件)的文件名(*.TXT),
用TSearchRect和FindFirst、FindNext如何实现,请举个例子,谢谢!
 
试验一下这个,也许可以。匆忙写的,没有严格测试
procedure GetFilesInfo(aFilePath, aFileExt: String; var astrlist: TStringList);
var
SR: TSearchRec;
begin
{获取当前目录下的文件}
if FindFirst(aFilePath + aFileExt, faReadOnly + faHidden + faSysFile + faArchive, SR) = 0 then
begin
aStrList.Add(sr.Name);
while FindNext(Sr) = 0 do
aStrList.Add(sr.Name);
FindClose(Sr);
end;

{递归查找子目录下的文件}
if FindFirst(aFilePath + '*.*', faDirectory, SR) = 0 then
begin
if (sr.Name <> '.') and (sr.Name <> '..') then
GetFilesInfo(aFilePath + sr.Name + '/', aFileExt, astrlist);

while FindNext(SR) = 0 do
if (sr.Name <> '.') and (sr.Name <> '..') then
GetFilesInfo(aFilePath + sr.Name + '/', aFileExt, astrlist);
end;

FindClose(sr);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
aa: TStringList;
begin
aa := TStringList.Create;
GetFilesInfo('C:/Windows/', '*.TXT', aa);
ShowMessage(aa.Text);
aa.Free;
end;

 
不妨到www.torry.net 用filefind 或 search 关键字进行搜索,可以找到相关
控件,并提供辕马。
 
接受答案了.
 
后退
顶部