如何搜索目录下的文件并且把文件名一一列入ListBox!

Linux2001 2001-07-21 07:36:37
...全文
154 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaojiachong 2001-07-22
  • 打赏
  • 举报
回复
天那,这么辛苦写这么多,老板总要给点分把
wangxd1976 2001-07-22
  • 打赏
  • 举报
回复
procedure TMainForm.findfiles(Apath:string);
var
FSearchrec,DSearchrec:TSearchRec;
FindResult:integer;
function getdirname(dirname:string):string;
begin
if dirname[length(dirname)]<>'\' then
result:=dirname+'\'
else
result:=dirname;
end;
function IsDirNotation(Adirname:string):bool;
begin
result:=(adirname='.') or (adirname='..');
end;
begin
apath:=getdirname(apath);
FindResult:=findfirst(Apath+'*.pas',faAnyFile+faHidden+faSysFile+faReadOnly,FSearchRec);
try
while findresult=0 do
begin
listbox1.Items.Add(lowercase(Apath+FSearchRec.Name));
findresult:=findnext(FSearchRec);
end;
findresult:=findfirst(apath+'*.*',faDirectory,DSearchRec);
while findresult=0 do
begin
if ((DSearchRec.Attr and faDirectory)= faDirectory)
and not IsDirNotation(DSearchRec.Name) then
findfiles(apath+DSearchRec.Name);
findresult:=findnext(DSearchRec);
end;
finally
findclose(FSearchRec);
end;
end;

procedure TMainForm.Button1Click(Sender: TObject);
begin
if edit1.text='' then
begin
showmessage('Input Directory First');
exit;
end;
listbox1.items.Clear;
findfiles(trim(edit1.text));
end;
wangxd1976 2001-07-22
  • 打赏
  • 举报
回复
怎么这么懒呀
Linux2001 2001-07-22
  • 打赏
  • 举报
回复
能写一下代码么?
shawnguo 2001-07-21
  • 打赏
  • 举报
回复
学习
karron 2001-07-21
  • 打赏
  • 举报
回复
gz
粗线条Jackie 2001-07-21
  • 打赏
  • 举报
回复
我先说一下查找的实现方法:
1. 获取当前目录下的所有下一级子目录。
2. 存入字符串列表中(Tstrings)。
其中,用到了几个API函数。
FindFirst 是找出指定目录下第一个文件或目录。
FindNext 一般和FindFirst配合使用,用来找出下一个文件或目录。
FindClose 用来关闭查询。
3. 用FileExists函数查找当前目录,
4. 寻找是否有满足条件的文件存在,
5. 依次使各个子目录成为当前目录,
6. 递归调用本函数,
7. 释放资源,
8. 返回查询结果。  
 
windindance 2001-07-21
  • 打赏
  • 举报
回复

9·最简单的方法 - 使用TFileListBox控件:)

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧