Po prostu szybko przejrzałem katalog moich fragmentów. Znalezione:
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);
}
Daje to wektor z wszystkimi nazwami plików w katalogu. Działa tylko w systemie Windows.
João Augusto zauważyć w answer:
Nie zapomnij sprawdzić po FindClose(hFind)
dla:
DWORD dwError = GetLastError();
if (dwError != ERROR_NO_MORE_FILES)
{
// Error happened
}
Jest to szczególnie ważne w przypadku skanowania w sieci.
Zobacz również [Jak mogę uzyskać listę plików w katalogu używającym C lub C++] (http://stackoverflow.com/questions/612097/how-can-i-get-list-of-files-in-a-directory-using-c-or-c). –