Windows — Оптимизация Перечисления Диска и Переполнения стека Списка файлов

Я пишу код C ++ для перечисления всего списка жестких дисков и накопителей, однако для завершения перечисления дисков всех накопителей требуется более 15 минут (емкость жесткого диска 500 ГБ). и скомпилируйте ответ в двоичном файле.

Тем не менее, у меня есть сторонний исполняемый файл, который дает мне список всего Диска всего за две минуты … Не могли бы вы заглянуть в мой код и предложить мне некоторые методы повышения производительности.

EnumFiles(CString FolderPath, CString SearchParameter,WIN32_FIND_DATAW *FileInfoData)
{
CString SearchFile = FolderPath + SearchParameter;
CString FileName;

hFile = FindFirstFileW(SearchFile, FileInfoData); //   \\?\C:\*

if (hFile == INVALID_HANDLE_VALUE)
{
// Error
}
else
{
do
{
FileName = FileInfoData->cFileName;
if (FileInfoData->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if (! (FileName == L"." || FileName == L".."))
{
// Save the Folder Information
EnumFiles(FolderPath + FileName +(L"\\"), SearchParameter,FileInfoData);
}
}
else
{
// Save the File Parameters
}

} while (FindNextFileW(hFile, FileInfoData));
}
FindClose(hFile);
}

1

Решение

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

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

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

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