FindFirstFile和FindNextFile

HANDLE FindFirstFile(
LPCTSTR lpFileName, // file name
LPWIN32_FIND_DATA lpFindFileData // data buffer
);

功能说明

该函数到一个文件夹(包括子文件夹)去搜索指定文件 如果要使用附加属性去搜索文件的话 可以使用FindFirstFileEx函数

参数说明

HANDLE hFindFile搜索的文件句柄 函数执行的时候搜索的是此句柄的下一文件
LPWIN32_FIND_DATA lpFindFileData 指向一个用于保存文件信息的结构体

返回值

如果调用成功返回一个非0值
调用失败 返回为0 可调用GetLastError来获取错误信息
 

BOOLFindNextFile(
HANDLE hFindFile, //searchhandle
LPWIN32_FIND_DATA lpFindFileData //databuffer
);

功能说明  继续查找FindFirstFile函数搜索后的文件

参数说明

HANDLE hFindFile搜索的文件句柄 函数执行的时候搜索的是此句柄的下一文件
LPWIN32_FIND_DATA lpFindFileData 指向一个用于保存文件信息的结构体

返回值

如果调用成功返回一个非0值
调用失败 返回为0 可调用GetLastError来获取错误信息
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用C语言在Windows平台上遍历目录时,可以使用`FindFirstFile`和`FindNextFile`函数来获取目录中的文件列表。以下是一个示例代码: ```c #include <stdio.h> #include <windows.h> int main() { WIN32_FIND_DATA findData; HANDLE hFind; char directory[MAX_PATH]; // 获取目录 printf("请输入目录:"); scanf("%s", directory); // 构造搜索路径 char searchPath[MAX_PATH]; snprintf(searchPath, MAX_PATH, "%s\\*", directory); // 开始搜索 hFind = FindFirstFile(searchPath, &findData); if (hFind == INVALID_HANDLE_VALUE) { printf("无法打开目录!\n"); return 1; } // 遍历文件列表 do { // 跳过当前目录和父目录 if (strcmp(findData.cFileName, ".") == 0 || strcmp(findData.cFileName, "..") == 0) { continue; } // 判断是否是目录 if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { printf("目录:%s\n", findData.cFileName); } else { printf("文件:%s\n", findData.cFileName); } } while (FindNextFile(hFind, &findData)); // 关闭搜索句柄 FindClose(hFind); return 0; } ``` 在以上示例中,我们使用`FindFirstFile`函数打开指定目录并获取第一个文件的信息。然后,我们使用`FindNextFile`函数遍历剩余的文件,并输出文件名或目录名。请注意,我们跳过了当前目录和父目录("."和"..")。最后,我们使用`FindClose`函数关闭搜索句柄。 这只是一个简单的示例,你可以根据自己的需求进行更多的操作,例如递归遍历子目录、筛选特定类型的文件等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值