转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
用Delphi实现子目录级的文件查询         ★★★★

用Delphi实现子目录级的文件查询

作者:闵涛 文章来源:闵涛的学习笔记 点击数:869 更新时间:2009/4/23 18:42:12
用Delphi实现子目录级的文件查询

 

在应用实践中,我们经常会用到文件查询功能。通过Win95中提供的查找功能,我们可以方便的找出磁盘上任何子目录下的文件,其原因是该查找功能可以遍历指定目录下的所有子目录中的文件。从编程角度讲,它实现了子目录级的文件查询。其实,这项功能并不难实现,关键是能理解并掌握懙莨閽这种程序设计思路。本人用Delphi实现了该项功能(任意子目录级),由于使用了懙莨閽,程序思路清晰,代码量小。

实现方法:
1. 获取当前目录下的所有下一级子目录。
2. 存入字符串列表中(Tstrings)。
其中,用到了几个API函数。
FindFirst 是找出指定目录下第一个文件或目录。
FindNext 一般和FindFirst配合使用,用来找出下一个文件或目录。
FindClose 用来关闭查询。
(以上函数Delphi在线帮助中有详尽解释,在此不赘述);
3. 用FileExists函数查找当前目录,
4. 寻找是否有满足条件的文件存在,
5. 依次使各个子目录成为当前目录,
6. 递归调用本函数,
7. 释放资源,
8. 返回查询结果。  
 
代码如下:
1. 从搜索记录中判断是否是子目录。
 
function IsValidDir(SearchRec:TSearchRec):Boolean;
begin
if (SearchRec.Attr=16) and
(SearchRec.Name<>''''.'''') and
(SearchRec.Name<>''''..'''') then
Result:=True
else
Result:=False;
end;
2. 这是查询主体函数。
参数介绍:

Mainpath: 指定的查询目录。
Filename: 欲查询的文件。
Foundresult: 返回的含完整路径的匹配文件(可能有多个)。

如果有匹配文件,函数返回True,否则,返回False;  

function SearchFile(mainpath:string; filename:string;
var foundresult:TStrings):Boolean;
var i:integer;
Found:Boolean;
subdir1:TStrings;
searchRec:TsearchRec;
begin
found:=false;
if Trim(filename)<>'''''''' then
begin
subdir1:=TStringList.Create;//字符串列表必须动态生成
//找出所有下级子目录。
if (FindFirst(mainpath+''''*.*'''', faDirectory, SearchRec)=0) then
begin
if IsValidDir(SearchRec) then
subdir1.Add(SearchRec.Name);
while (FindNext(SearchRec) = 0) do
begin
if IsValidDir(SearchRec) then
subdir1.Add(SearchRec.Name);
end;
end;
FindClose(SearchRec);
//查找当前目录。
if FileExists(mainpath+filename) then
begin
found:=true;
foundresult.Add(mainpath+filename);
end;
//这是递归部分,查找各子目录。
for i:=0 to subdir1.Count-1 do
found:=Searchfile(mainpath+subdir1.Strings[i]+
''''\'''',Filename,foundresult)or found;
//资源释放并返回结果。
subdir1.Free;
end;
result:=found;
end;
 
总之,只要掌握了思路,用哪种编程语言都可以实现。现在,你可以轻松的给你 的系统挂上一个非常使用的功能了。



『Site:delphi爱好者 | E-mail:delphifan@990.net | Webmaster:梁 明』
---------------------------------------------------------------------------


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台