注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

鑫淼梦园的博客

圆你的梦想 从这里开始

 
 
 

日志

 
 

怎样遍历一个目录下的所有文件?  

2013-09-07 11:35:10|  分类: delphi xe4 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
procedure searchfile(path:string);//注意,path后面要有 '\ '; 
var 
SearchRec:TSearchRec; 
found:integer; 
begin 
found:=FindFirst(path+ '*.* ',faAnyFile,SearchRec); 
while found=0 do 
begin 
if (SearchRec.Name <> '. ') and (SearchRec.Name <> '.. ') 
and (SearchRec.Attr <> faDirectory) then 
ListBox1.Add(SearchRec.Name); 
found:=FindNext(SearchRec); 
end; 
FindClose(SearchRec); 
end;

 

上面一个只获取当前目录下所有文件,如果要获取该目录下的子目录的文件,看下面 
procedure SearchFile(path:string); 
var 
SearchRec:TSearchRec; 
found:integer; 
begin 
found:=FindFirst(path+ '*.* ',faAanyFile,SearchRec); 
while found=0 do 
begin 
if (SearchRec.Name <> '. ') and (SearchRec.name <> '..) and 
(SearchRec.Name=faDirectory) then 
SearchFile(SearchRec.Name+ '\ ') 
else 
LisBox1.Add(SearchRec.Name); 
found:=FindNext(SearchREc); 
end; 
FindClose(SearchRec); 
end;

 

另一方法:

先用 
chdir( 'ml '); //ml 为你想搜索的目录 
再调用 
procedure FindFile(BaoHan:integer); 
//搜索指定目录下文件,BaoHan=1 包含子目录 
var Sr : TSearchRec; 
Err,i: integer; 
ml:string; 
Begin 
i:=0; 
Err:=FindFirst( '*.* ',$37,Sr); 
if sr.Name[1]= '. ' then Err:=FindNext(Sr) ; 
if sr.Name[1]= '. ' then Err:=FindNext(Sr) ; 
While (Err = 0) do begin 
Listbox1.add(ExpandFileName(Sr.Name)); 
If (baohan=1)and((Sr.Attr and faDirectory) <> 0) then 
begin 
ChDir(Sr.Name); FindFile(1); ChDir( '.. ') ; 
end; 
end; 
Err:=FindNext(Sr) ; 
end ; 
end;

 

可以试一试:

filelistbox控件;

  评论这张
 
阅读(296)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017