Только что быстро просмотрел мой каталог с фрагментами. Нашел это:
vector<CStdString> filenames;
CStdString directoryPath("C:\\foo\\bar\\baz\\*");
WIN32_FIND_DATA FindFileData;
HANDLE hFind = FindFirstFile(directoryPath, &FindFileData);
if (hFind != INVALID_HANDLE_VALUE)
{
do
{
if (FindFileData.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY)
filenames.push_back(FindFileData.cFileName);
} while (FindNextFile(hFind, &FindFileData));
FindClose(hFind);
}
Это дает вам вектор со всеми именами файлов в каталоге. Конечно, работает только на Windows.
Жуан Аугусто отмечен в ответе :
Не забудьте проверить после FindClose(hFind)
на:
DWORD dwError = GetLastError();
if (dwError != ERROR_NO_MORE_FILES)
{
// Error happened
}
Это особенно важно при сканировании по сети.