FindFirstFile 举例
时间: 2023-12-11 15:03:22 浏览: 133
FindFirstFile
4星 · 用户满意度95%
当使用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`函数关闭搜索句柄。
这只是一个简单的示例,你可以根据自己的需求进行更多的操作,例如递归遍历子目录、筛选特定类型的文件等。
阅读全文