返回的HANDLE如何遍历该路径下所有文件夹以及文件
时间: 2023-11-24 14:05:31 浏览: 72
遍历指定文件夹下所有文件
3星 · 编辑精心推荐
可以使用FindFirstFile和FindNextFile函数来遍历一个文件夹下的所有文件和子文件夹。
首先,使用FindFirstFile函数获取第一个文件或文件夹的句柄,然后使用FindNextFile函数来获取下一个文件或文件夹的句柄。循环遍历直到FindNextFile函数返回false,表示已经遍历完所有文件和文件夹。
在遍历的过程中,可以使用WIN32_FIND_DATA结构体来获取文件或文件夹的详细信息,例如文件名、文件大小、修改时间等等。
以下是一个示例代码:
```
HANDLE hFind;
WIN32_FIND_DATA findData;
// 搜索路径
LPCTSTR path = _T("C:\\MyFolder\\*");
// 查找第一个文件或文件夹
hFind = FindFirstFile(path, &findData);
if(hFind != INVALID_HANDLE_VALUE)
{
do
{
// 如果是文件夹
if(findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
// 排除 . 和 .. 文件夹
if(_tcscmp(findData.cFileName, _T(".")) != 0 && _tcscmp(findData.cFileName, _T("..")) != 0)
{
// 递归遍历子文件夹
TCHAR subPath[MAX_PATH];
_stprintf_s(subPath, _T("%s\\%s\\*"), path, findData.cFileName);
TraverseFolder(subPath);
}
}
else
{
// 如果是文件,可以在这里处理文件
// ...
}
} while(FindNextFile(hFind, &findData)); // 查找下一个文件或文件夹
FindClose(hFind); // 关闭句柄
}
```
阅读全文