我试图让FindFileFirst()Windows API调用正常工作,并且每次尝试都完全失败。我已经尝试过。,C:\ *。* 、. txt,C:\。txt,但它甚至没有遍历目录名称。不知道该怎么尝试了。当我调用GetLastError()时,我得到了ERROR_FILE_NOT_FOUND 2(0x2)。谢谢你提供的所有帮助。
HANDLE hFind;
LPWIN32_FIND_DATA FindFileData;
hFind = FindFirstFile("*.*", &FindFileData);
if(hFind == INVALID_HANDLE_VALUE)
{
printf("\nFindFirstFile failed (%u)\n",GetLastError());
return;
}
do
{
if(FindFileData->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if(FindFileData->cFileName[0] != '.')
continue;
else
searchDir(makePath(path, FindFileData->cFileName));
}
printf("Found %s %s\n",
FindFileData->dwFileAttributes,FindFileData->cFileName);
FindClose(hFind);
}
while(FindNextFile(hFind, &FindFileData));
FindClose(hFind);
最佳答案
LPWIN32_FIND_DATA FindFileData;
您正在使用FindFileData指针,而没有为其分配内存。
使用这种方式..(“删除LP”)
WIN32_FIND_DATA FindFileData; //这将使用堆栈内存
然后引用类似于FindFileData.dwFileAttributes的成员,而不是使用FindFileData-> dwFileAttributes