FindFirstFile函数

返回值

编辑
Long,如执行成功,返回一个搜索句柄。如果出错,返回一个INVALID_HANDLE_VALUE常数,一旦不再需要,应该用FindClose函数关闭这个句柄

参数表

编辑
参数 类型及说明
lpFileNameString,欲搜索的文件名。参数可如下
1
2
3
4
5
6
c:\Windows\*.* //在c:\Windows目录中查找所有文件
c:\Windows\System32\*.dll //在c:\Windows\System32目录中查找所有dll文件
c:\Windows\System.ini;在c:\Windows目录中查找System.ini文件
c:\Windows\a???.* //在c:\Windows目录中查找所有以a开头的文件名长度.为4个字符的文件
Test.dat //在当前目录查找Test.dat文件
*.* //在当前目录查找所有文件
(注!一定要带文件名。如果参数为“c:\Windows”,则返回的文件名为“Windows”,并且接下来调用FindNextFile会返回失败)
lpFindFileDataWIN32_FIND_DATA,这个结构用于装载与找到的文件有关的信息。该结构可用于后续的搜索

结构说明

编辑
1
2
3
4
5
6
7
8
9
10
11
12
WIN32_FIND_DATASTRUCT
dwFileAttributesDWORD?; //文件属性
ftCreationTimeFILETIME<>; //文件的创建日期
ftLastAccessTimeFILETIME<>; //文件的最后存取日期
ftLastWriteTimeFILETIME<>; //文件的最后修改日期
nFileSizeHighDWORD?; //文件长度的高32位
nFileSizeLowWORD?; //文件长度的低32位
dwReserved0DWORD?; //内部使用
dwReserved1DWORD?; //内部使用
cFileNameBYTEMAX_PATHdup(?); //本次找到的文件名
cAlternateBYTE14dup(?); //文件的8.3结构的短文件名
WIN32_FIND_DATAENDS
dwFileAttributes字段可以是下面取值的组合,通过这个字段可以检查找到的究竟是一个文件还是一个子目录,以及其他的 文件属性
1
2
3
4
5
6
7
8
●FILE_ATTRIBUTE_ARCHIVE——文件包含归档属性。
●FILE_ATTRIBUTE_COMPRESSED——文件和目录被压缩。
●FILE_ATTRIBUTE_DIRECTORY——找到的是一个目录。
●FILE_ATTRIBUTE_HIDDEN——文件包含隐含属性。
●FILE_ATTRIBUTE_NORMAL——文件没有其他属性。
●FILE_ATTRIBUTE_READONLY——文件包含只读属性。
●FILE_ATTRIBUTE_SYSTEM——文件包含系统属性。
●FILE_ATTRIBUTE_TEMPORARY——文件是一个临时文件。
(返回的文件名中会包含"."和".."。“.'代表本目录,".."代表上一层目录。一般情况下需要把这两个名称过滤掉。比如要进行文件删除操作)

注解

编辑
由这个函数返回的句柄可以作为一个参数用于FindNextFile函数。这样一来,就可以方便的枚举出与lpFileName参数指定的文件名相符的所有文件

VC声明

编辑
1
2
3
4
HANDLE  FindFirstFile(
     LPCTSTR  lpFileName, //filename
     LPWIN32_FIND_DATA lpFindFileData //databuffer
);
程序例
1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h>
#include<windows.h>
 
intmain()
{
     WIN32_FIND_DATA p;
     HANDLE  h=FindFirstFile( "e:\\test\\*.c" ,&p);
     puts (p.cFileName);
     while (FindNextFile(h,&p))
     puts (p.cFileName);
     return0;
}

参数说明

编辑
LPCTSTR  lpFileName文件名(包括路径)
LPWIN32_FIND_DATA lpFindFileData 指向一个用于保存文件信息的 结构体

返回值

编辑
如果调用成功返回一个句柄,可用来做为 FindNextFile或  FindClose参数
调用失败 返回为INVALID_HANDLE_VALUE(即-1) ,可调用 GetLastError来获取错误信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值