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. Windows中用“ls”命令

    解决办法是: 在C:\Windows\System32目录下新建文本文档,文件内容为: @echo off dir 另存为“ls.bat” 类型为所有文件,编码ANSI 可使用dir 或者ls都可以 ...

  2. Servlet笔记9--Cookie

    Cookie: 使用Cookie机制实现十天内免登陆: Servlet程序: package com.bjpowernode.javaweb.servlet; import java.io.IOExc ...

  3. 【干货】linux系统信息收集 ----检测是否被恶意程序执行了危险性命令

    这些实战完全可以练习以下命令,已经找到需要观察的交互点,真实工作的时候,把数据都导入到自己U盘或者工作站内. 在kali 或者centos下训练都一样,关于kali教学,这里推荐掌控安全团队的课程:掌 ...

  4. linux常用运维命令【转】

    自己的小网站跑在阿里云的ECS上面,偶尔也去分析分析自己网站服务器日志,看看网站的访问量.看看有没有黑阔搞破坏!于是收集,整理一些服务器日志分析命令,大家可以试试! 1.查看有多少个IP访问: awk ...

  5. 003_vim使用tip

    vim 使用tip 编写python程序 自动插入头信息: #!/usr/bin/env python # coding=utf-8 输入.或按TAB键会触发代码补全功能 :w保存代码之后会自动检查代 ...

  6. 【前端vue开发】vue知识点超链接学习笔记

    1.如何去除vue项目中的 # --- History模式: https://www.cnblogs.com/zhuzhenwei918/p/6892066.html 2.三分钟教你写个Vue组件: ...

  7. Windows caffe VGG人脸识别

    caffe自带的例子有mnist和cifar10,cifar10和mnist的运行方式类型,下好图片数据文件后,训练例子中的模型,然后测试模型,也可以自己用图片进行预测分类(自己图片最好是cifar1 ...

  8. Linux挂载qcow2格式的镜像

    qcow2格式的镜像一般用于KVM/QEMU的hypervisor,当我们需要修改guest host内的一些配置而又不想启动VM时则可以通过挂载guest host进行修改. 需要安装的工具包: l ...

  9. CF1064B 【Equations of Mathematical Magic】

    题目要求解$a-(a\oplus x)-x=0$的解$x$的个数 移项得$a-x=a\oplus x$ $a$的二进制形式,应该是一个$01$串,异或的过程是不能影响到两个不同的位的,所以我们按位考虑 ...

  10. 037 SparkSQL ThriftServer服务的使用和程序中JDBC的连接

    一:使用 1.实质 提供JDBC/ODBC连接的服务 服务运行方式是一个Spark的应用程序,只是这个应用程序支持JDBC/ODBC的连接, 所以:可以通过应用的4040页面来进行查看操作 2.启动服 ...