Вывод названий файлов из директории
Не работает вывод имен файлов из директории
Попробовал `
int main() {
WIN32_FIND_DATA FindFileData;
HANDLE hf;
hf = FindFirstFile(L"C:/MainProject/*", &FindFileData);
if (hf != INVALID_HANDLE_VALUE)
{
do
{
cout << FindFileData.cFileName << endl;
} while (FindNextFile(hf, &FindFileData) != 0);
FindClose(hf);
}
return 0;
}
`
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
WinAPI функции есть в 2х вариантах: Ansi, к примеру FindFirstFileA и Unicode, к примеру FindFirstFileW
Когда вы вызываете FindFirstFile и указываете L"C:/MainProject/*", т.е. unicode-строку, то выбирается вариант unicode-функций, структур и т.д.
Т.е. FindFileData.cFileName - это unicode, и для ее отображения нужна функция std::wcout, а не std::cout
Т.е. ваш код должен быть:
int main() {
WIN32_FIND_DATA FindFileData;
HANDLE hf;
hf = FindFirstFile(L"C:/MainProject/*", &FindFileData);
if (hf != INVALID_HANDLE_VALUE)
{
do
{
std::wcout << FindFileData.cFileName << std::endl;
} while (FindNextFile(hf, &FindFileData) != 0);
FindClose(hf);
}
return 0;
}