windows.h Как использовать FindFirstFile () и FindNextFile (), чтобы вывести список всех файлов в каталоге?

Я пишу приложение на Qt и пытаюсь использовать функции Windows FindFirstFile и FindNextFile для ускорения подсчета большого количества файлов в нескольких каталогах. Я почти дословно скопировал этот код с сайта Microsoft, чтобы вывести список файлов, но его отладка показывает, что при запуске функции отображается только один файл;

QStringList Manager::returnDirectoryFileData(QString ChangedDirectory)
{
QStringList DirectoryFiles;
WIN32_FIND_DATA FindFileData;
LARGE_INTEGER filesize;
HANDLE hFind = INVALID_HANDLE_VALUE;
DWORD dwError = 0;

//string directorySearch = "E:\\My Documents\\Visual Studio 2010\\Projects\\SEP-Asignment-One\\Debug\\*";

// Find the first file in the directory.
LPCWSTR ConvertedDir = (const wchar_t*)ChangedDirectory.utf16();
PVOID OldValue = NULL;

if (Wow64DisableWow64FsRedirection(&OldValue))
{
hFind = FindFirstFile(ConvertedDir, &FindFileData);

if (hFind == INVALID_HANDLE_VALUE)
{
printf("Invalid file handle. Error is %u.\n", GetLastError());
}

do
{
QString Newname = "Want to do stuff here";
DirectoryFiles.append(Newname);

printf("  %s   <DIR>\n", FindFileData.cFileName);

} while (FindNextFile(hFind, &FindFileData) != 0);

dwError = GetLastError();
if (dwError != ERROR_NO_MORE_FILES)
{
DisplayErrorBox(TEXT("FindFirstFile"));
}

FindClose(hFind);

}
Wow64RevertWow64FsRedirection(&OldValue);
return DirectoryFiles;
}

Это 32-битная программа, работающая в 64-битных окнах 10, поэтому предполагается, что Wow64DisableWow64fsredirection вызывается перед использованием этих функций. Кто-нибудь знает, что я делаю не так? Спасибо!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]