This code works on Windows XP at home but fails at work on 64bit Windows 7. The loop isn’t entered even once although there are more than 50 files in the supplied folder. Not only it doesn’t enter, it also returns ERROR_NO_MORE_FILES for GetLastError. Why?
string dir = "d:\\validfolder";
WIN32_FIND_DATA ffd;
HANDLE h = FindFirstFile(dir.c_str(), &ffd);
while(FindNextFile(h, &ffd))
{
// some operation
}
DWORD dw = GetLastError();// returns ERROR_NO_MORE_FILES
I tried Wow64DisableWow64FsRedirection but that has no effect.
You need to add a file wildcard to your dir:
For it to list the files in a directory. Otherwise you are only asking for information about the directory itself.
At least that’s how I read the documentation for FindFirstFile
I don’t know why it’s working for you on XP