如何用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;

时间: 2024-10-26 06:13:30

如何用Delphi实现子目录级的文件查询的相关文章

windows7下如何用CMD命令复制和删除文件夹?

  有时候有些顽固的文件或者文件夹我们总是让你删除不掉,不要着急其实Win7系统自带的CMD命令就可以很好的解决这个问题,下面小编就为你介绍一下windows7下如何用CMD命令复制和删除文件夹. 如果我要把f盘的file文件夹复制到c盘根目录,如何用cmd命令实现呢?很简单: xcopy f:file c:file /e 如果要删除呢?也简单:假设删除d盘下的123文件夹 del/s/q d:123*.* ----(用于删除文件夹下的子文件) rd/s/q d:123 ----(用于删除文件夹

windows-如何用Java扫描Windows下的文件夹?

问题描述 如何用Java扫描Windows下的文件夹? 如何用Java扫描Windows下的文件夹以及文件夹下面的文件 解决方案 import java.io.File;/** * *自动扫描文件夹下的文件 *用途:自动扫描脚本输入路径,输出要执行的sql导入数据库: */public class OutSql { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method

如何用CZip/CUnzip类压缩/解压缩文件

本文介绍如何用CZip/CUnzip类压缩/解压缩文件,这个类使用gzip GNU源代码(gzip-1.2.4a).这是个免费软件,在GUN通用公共许可证(General Public License)条款下可以分发及修改此软件,关于这个通用公共许可证的详细条款请参考: http://www.vckbase.com/vckbase/uniondocs/gungpl.htm 目标动态库输出两个类: CZip(用于压缩文件) CUnzip (用于解压缩文件) 首先用文件名建立CZip 或 CUnzi

Java遍历输出指定目录、树形结构所有文件包括子目录下的文件_java

下面通过一段代码介绍下Java输出指定目录.树形结构下的所有文件包括子目录中的文件的方法,并附有效果图. import java.io.File; public class ReadDirectory { // 文件所在的层数 private int fileLevel; /** * 生成输出格式 * @param name 输出的文件名或目录名 * @param level 输出的文件名或者目录名所在的层次 * @return 输出的字符串 */ public String createPri

如何用delphi设计将表二减表一,然后把结果写入表三中。

问题描述 如何用delphi设计将表二减表一,然后把结果写入表三中. SQl2005数据库有两个表如下表一,表二. 如何用delphi设计将表二减表一,然后把结果写入表三中. 一.表名:NNew 结构如下: ID, 品名,数量 1 花香 100 2 飘柔 125 3 秀美 126 二.表名:TTew 结构如下: ID, 品名,数量 1 花香 500 2 飘柔 625 3 秀美 726 如何将表一,和表二逐项相减,将结果写入表三中 正解结果如下 三.表名:TTMP ID, 品名,数量 1 花香 4

VS2013如何用npoi来获取某个execl文件的数据

问题描述 VS2013如何用npoi来获取某个execl文件的数据 RT 开发环境是vs2013 + mssql08, 项目是个WPF, 想实现简单的一个按钮功能, 就是能够选择一个xls文件(execl的格式是固定的,比如只有8个列,每个列都是数字),然后获得这个文件里的数据,存到我自己的类里面(类里定义的有对应的属性),然后把所有的数据逐行存到数据库对应的表里面, 因为我是自学的.NET 所以很多比较基础的东西一知半解,网上搜的一些源码用没办法调试成功,所以跪求大神给段代码, 最好是封装的方

提问如何用vb.net实现将excel文件导入oracle数据库

问题描述 提问如何用vb.net实现将excel文件导入oracle数据库,或者是csv文件也可以需要新建一个表,将文本中的内容导入这个表,需要有框架,大体就是选择一个文件,导入就可以 解决方案 解决方案二:Refertothreadfollowshttp://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=150437&SiteID=1DimMyCommandAsSystem.Data.OleDb.OleDbDataAdapterDimMyConn

微过滤-关于微驱动(Mini Filter Driver)里面 如何用文件名来判断禁止访问指定文件

问题描述 关于微驱动(Mini Filter Driver)里面 如何用文件名来判断禁止访问指定文件 本人刚刚开始学习过滤驱动,自己想做一个微过滤驱动来实现特定文件名的访问限制. 比如: README.txt 这个文件名的文件 不可以创建,打开,编辑和删除. 我在IRP_MJ_SET_INFORMATION 的 预处理里实现的属性的禁止修改. 但是在用IRP_MJ_READ , IRP_MJ_WRITE, IRP_MJ_CREATE 里却 不能实现... 不知道是不是因为在缓存中读取所以文件名字

如何用c#代码实现将本地文件上传到百度文库

问题描述 如何用c#代码实现将本地文件上传到百度文库 用c#代码实现将本地文件上传到百度文库 有研究过这个的吗 希望能帮助下 谢谢