WINAPI 遍历目录WIN32_FIND_DATA结构、FindFirstFile取得第一个文件属性、FindNextFile取得下一个文件属性

本文介绍了在Windows API中如何使用WIN32_FIND_DATA结构、FindFirstFile和FindNextFile函数来遍历目录,获取文件属性。通过这两个函数,可以获取到文件或目录的相关信息,并实现文件的查找。当没有更多匹配文件时,FindNextFile函数会返回错误状态。
摘要由CSDN通过智能技术生成

先来说微软的数据结构WIN32_FIND_DATA
用于存储文件或是目录文件

typedef struct _WIN32_FIND_DATAA {
   
    DWORD dwFileAttributes;       //文件属性
    FILETIME ftCreationTime;       //文件创建时间
    FILETIME ftLastAccessTime;  //最后访问时间
    FILETIME ftLastWriteTime;     //最后一次写入时间
    DWORD nFileSizeHigh;          //文件大小 高位
    DWORD nFileSizeLow;           //文件大小 低位
    DWORD dwReserved0;
    DWORD dwReserved1;
    CHAR   cFileName[ MAX_PATH ];   //文件名
    CHAR   cAlternateFileName[ 14 ];
   } WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA;

好了定义说完了,开始说如何使用这个定义了
FindFirstFile 根据文件名查找文件

HANDLE FindFirstFile(
    LPCTSTR lpFileName,//filename
    LPWIN32_FIND_DATA lpFindFileData//databuffer
);

返回值为一个句柄 HANDLE,当调用失败时将返回INVALID_HANDLE_VALUE,也就是-1
参数:
1.LPCTSTR lpFileName 要查找的文件
2.LPWIN32_FIND_DATA lpFindFileData 用于保存查到文件的属性

FindNextFile 查找下一个文件

BOOL FindNextFile(
HANDLE hFindFile, //searchhandle
LPWIN32_FIND_DATA lpFindFileData //databuffer
);

返回值为真或假,如不再有与指定条件相符的文件,会将GetLastError设置成ERROR_NO_MORE_FILES
参数:
1.HANDLE hFindFile 由FindFristFile产生的一个句柄
2.用于保存找到的下一个文件的属性

还要说明的是文件的属性有如下:

#define FILE_ATTRIBUTE_READONLY             0x00000001  //只读
#define FILE_ATTRIBUTE_HIDDEN               0x00000002   //隐藏
#define FILE_ATTRIBUTE_SYSTEM               0x00000004  //系统文件
#define FILE_ATTRIBUTE_DIRECTOR
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值