WCHAR szFileName[255];
GetModuleFileName(NULL, szFileName, 255);// диск
WIN32_FIND_DATAW wfd;
HANDLE const hFind = FindFirstFileW(L"С:\\report\\*", &wfd); //место д подставить другой
setlocale(LC_ALL, "");
if (INVALID_HANDLE_VALUE != hFind)
{
do
{
std::wcout << &wfd.cFileName[0] << std::endl;
} while (NULL != FindNextFileW(hFind, &wfd));
FindClose(hFind);
В примере указано что диск С но нужно менять в индивидуальном порядке как можно это сделать чтоб указывало?
Вопрос сложный, в том смысле, что сложно понять, в чем состоит ваша проблема. Придется угадывать.
Чтобы заменить диск C на другой, достаточно просто поменять букву в строке. Например, вместо L"С:\\report\\*" можно написать L"D:\\kompot\\*.*" или L"Z:\\kefir\\*.*".
Строку для поиска можно создавать и динамически. Например
WCHAR szPath[] = L"C:\\reports\\*.*";
szPath[0] = L'E'; // На самом деле мы хотим не C:, а E:
. . .
HANDLE hFind = ::FindFirstFile(szPath, ...
Или, вот например, вы зачем-то получили путь к текущей программе в szFileName, который нигде не используете. Можно на его основе сделать поиск всех текстовых файлов, которые содержатся в каталоге программы.
WCHAR szFileName[MAX_PATH];
GetModuleFileName(NULL, szFileName, MAX_PATH); // Путь к себе
LPWSTR p = wcsrchr(szFileName, L'\\'); // Найти позицию последней \
*(++p) = L'\0'; // Переместить указатель за \ и обрезать строку
wcscat(szFileName, L"*.txt"); // Хотим найти все файлы .txt в каталоге программы
HANDLE hFind = ::FindFirstFile(szFileName, ...
Вот как-то так.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей