std::filesystem не отображает все файлы в некоторых директориях
Господа, у меня код не отображает все файлы, находящиеся в определенных папках (не во всех, обычно, где много файлов). Читал несколько статей с похожей проблемой и я так понял дело в скрытых файлах windows, об которые "спотыкается" iterator, хотя ошибки явной компилятор не выдает. Пробовал несколько вариантов:
- Пробовал решить эту проблему одной из перегрузок рекурсивного итератора директории - "directory_options::skip_permission_denied", но результат тот же.
- Также думал, что дело в кодировках, поэтому добавил всевозможные сетлокали и SetConsoleCP. Тоже дело не в этом
- Пробовал название каждого файла пушить в вектор - ничего.
код:
SetConsoleCP(1251);
setlocale(LC_ALL, "RUS");
char folderpath[100];
cout << "Path: >> ";
cin.getline(folderpath, 100000);
wstring name;
wstring extension;
for (const auto& p : fs::recursive_directory_iterator(folderpath, fs::directory_options::skip_permission_denied))
{
if (!p.is_regular_file())
{
continue;
}
name = p.path().filename();
extention = name.substr(name.find_last_of('.'));
wcout << i++ << " " << name << " " << extention << p.file_size() << endl;
}
Сразу оговорюсь, я понимаю, что дело не в лыжах - сам дурак, подскажите только куда воевать.
Источник: Stack Overflow на русском