FindFirst  是用来寻找目标目录下的第一个文件,
FindFirst函数在delphi帮助下的定义: 
function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer; 
其中有一句:FindFirst returns 0 if a file was successfully located 
也就是说,当成功找到文件时,返回0.
FindNext   则是寻找下一个
TSearchRec 是一个文件信息的纪录,当FindFirst返回SearchRec时,你可以通过SearchRec.Name获取文件名,以及SearchRec.Size获取文件大小等信息。

TSearchRec类型

 

(1)TSearchRec是一个记录类型,在delphi帮助文档下可以看到其定义:
TSearchRec是一个文件信息的纪录(Record)类型
在Windows下原型:
type
TSearchRec = record
Time: Integer;
Size: Integer;
Attr: Integer;
Name: TFileName;
ExcludeAttr: Integer;
FindHandle: THandle;
FindData: TWin32FindData;
end;
(2).FindFirst函数在delphi帮助下的定义:
function FindFirst(const Path: string; Attr: 
Integer; var F: TSearchRec): Integer;
其中有一句:FindFirst returns 0 if a file was successfully 
located
也就是说,当成功找到文件时,返回0.

(3).sr.Attr是查找的文件属性(attribute 
Files).faDiractory是目录文件
整句的意思 
如果查找的文件类型是目录文件那么 ...
(4).当文件没有查找完毕(还能查找到下一个文件)..

*****************************************************

FindFirst是用来寻找目标目录下的第一个文件,FindNext则是寻找下一个 TSearchRec是一个文件信息的纪录,当FindFirst返回SearchRec时,你可以通过SearchRec.Name获取文件名,以及SearchRec.Size获取文件大小等信息。

TSearchRec类型定义如下:

type

TSearchRec = record

Time : Integer;

Size : Integer;

Attr : Integer;

Name : TFileName;

ExcludeAttr : Integer;

FindHandle : THandle;

FindData : TWin32FindData;

end;

当利用FindFirst和FindNext函数找到一个文件后,利用这个类型可以获得文件的属性、大小和修改时间等信息。

var SearchRec:TSearchRec;   //搜索对象

ext,AppPath:string;

begin    listbox1.Clear;        //清空列表框

AppPath:=edit1.text;   //设置要搜索的目标目录

ext:='*.*';            //设置要搜索的文件后缀名

FindFirst(AppPath+ext,faAnyFile,SearchRec);    //-faDirectory    listbox1.Items.Add(SearchRec.Name);           //添加文件名称

while FindNext(SearchRec)=0 do

listbox1.Items.Add(SearchRec.Name);        //添加文件名

end;

//更多注释:   //TSearchRec 结构是内涵文件大小、名称、属性与时间等信息   //TSearchRec 中的属性是一个整数值, 可能的值有:   //faReadOnly  1   只读文件   //faHidden    2   隐藏文件   //faSysFile   4   系统文件   //faVolumeID  8   卷标文件   //faDirectory 16  目录文件   //faArchive   32  归档文件   //faSymLink   64  链接文件   //faAnyFile   63  任意文件   //s 的值也可以使用?通配符,好像只支持7个?, 如果没有条件就是*, 譬如: C:\*   //实际使用中还应该在 repeat 中提些条件, 譬如判断如果是文件夹就递归搜索等等

delphi 文件查找的更多相关文章

  1. 【转】Delphi 文件读写

    procedure TForm1.Button1Click(Sender: TObject); variFileHandle: Integer;iFileLength: Integer;iBytesR ...

  2. delphi 文件的操作:重命名、复制、移动、删除

    Delphi 文件的操作:重命名.复制.移动.删除第一种方法: RenameFile('Oldname', 'Newname'); CopyFile(PChar('Oldname'), PChar(' ...

  3. Linux文件查找.md

    Linux 文件查找 在Linux系统的查找相关的命令: which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称 w ...

  4. myeclipse学习总结三(MyEclipse文件查找技巧)

    一.查找文件 使用快捷键[ctrl+shift+R]弹出弹出文件查找框,如下图所示: 二.查找包含某个字符串的文件 使用快捷键[ctrl+H]在弹出对话框中选File Search选项,然后在第一个文 ...

  5. 自己动手写文件查找,字符串查找,查询jar包等工具

    文件查找——搜索当前目录下的文件 知道大概的文件名称,使用 findf FileName findf.py import argparse, re, os from os.path import jo ...

  6. Linux 执行文件查找命令 which 详解

    某个文件不知道放在哪里了,通常可以使用下面的一些命令来查找: which  查看可执行文件的位置 whereis 查看文件的位置 locate   配合数据库查看文件位置 find   实际搜寻硬盘查 ...

  7. Node.js入门:文件查找机制

    文件查找流程图 从文件模块缓存中加载     尽管原生模块与文件模块的优先级不同,但是都不会优先于从文件模块的缓存中加载已经存在的模块. 从原生模块加载     原生模块的优先级仅次于文件模块缓存的优 ...

  8. <实训|第十一天>学习一下linux中的进程,文件查找,文件压缩与IO重定向

    [root@localhost~]#序言 在今后的工作中,运维工程师每天的例行事务就是使用free -m,top,uptime,df -h...每天都要检查一下服务器,看看是否出现异常.那么今天我们就 ...

  9. linux笔记八---------文件查找

    1.find文件查找指令 > find  目录  参数 参数值,参数 参数值.....    > find  /  -name  passwd   //从系统根目录开始递归查找name=p ...

随机推荐

  1. CSS border系列

    本文更新版链接 一.border 关于border的3个属性,分别为border-width.border-style.border-color. 其中,border-color默认为元素内容的前景色 ...

  2. LINUX下 USB转串口 【转】

    转自:http://blog.163.com/smilexiao_11015461/blog/static/2122052182012102410399459/ 1.将设备u口插入pc2.输入#lsm ...

  3. jstack查看Java堆栈信息

    命令 jps 查看进程id jstack 1234 查看该进程的线程堆栈信息 对于每个线程,都有如下信息: 线程名,如“main”线程属性(如果是Daemon线程,会有Daemon标识,否则,什么都没 ...

  4. SQL Server 连接池 (ADO.NET) MSDN

    连接到数据库服务器通常由几个需要很长时间的步骤组成. 必须建立物理通道(例如套接字或命名管道),必须与服务器进行初次握手,必须分析连接字符串信息,必须由服务器对连接进行身份验证,必须运行检查以便在当前 ...

  5. Coursera台大机器学习技法课程笔记15-Matrix Factorization

    很多ML模型用的都是数值特征,那么对于分类特征,该怎么做呢? 以linear network为例:先对特征进行转换,转换成有意义的特征后,再对其进行线性组合 进一步,模型可表示为:使Ein最小,我们就 ...

  6. ref:spring配置数据库方式

    ref:https://blog.csdn.net/alsyuan/article/details/73239240 1.使用org.springframework.jdbc.datasource.D ...

  7. 使用Golang开发一个本地代理

    引言 最近需要对接一个接口,人家提供了两种调用方式,第一种是基于IE浏览器的Active,第二种是动态链接库dll.我们公司的产品不支持IE,所以只能通过调用dll来完成了. 之前我已经用Java实现 ...

  8. Codeforces-1077C

    title: Codeforces-1077C date: 2018-11-24 15:22:31 tags: acm 刷题 categories: Codeforces 题意 题目链接 给你一个数组 ...

  9. odoo权限管理(二.记录管理)

    规则保存在ir.rule模型表里,需要设置关联某个模型,关联很多组,访问权限控制和domian. 通过domain_force过滤出的一些记录来执行约束. 例子:经理只能删除状态为'cancel'的客 ...

  10. View的工作原理(一) 总览View的工作流程

    View的工作原理(一) 总览View的工作流程 学习自 <Android开发艺术探索> 简书博主-丶蓝天白云梦 Overview 从本章开始,开始学习View的工作原理,包括View的 ...