Ошибка при поиске файлов на диске без указания конкретной папки. С++
Пытаюсь написать консольную программу для поиска файлов в системе. Если указать конкретную папку на диске, всё работает прекрасно, но если указать просто диск, то появляется системная ошибка. Пробовал запускать от имени администратора — не помогло. В чём может быть ошибка?
vector<fs::path> searchFiles(const fs::path& directory, const string& namePart, const string& extension = "") {
vector<fs::path> foundFiles;
regex namePattern(".*" + namePart + ".*", regex_constants::icase);
try {
for (const auto& entry : fs::recursive_directory_iterator(directory, fs::directory_options::skip_permission_denied)) {
try {
if (!hasReadPermission(entry.path())) {
continue;
}
if (entry.is_regular_file()) {
string filename = entry.path().filename().string();
if (std::regex_search(filename, namePattern)) {
if (extension.empty() || entry.path().extension() == extension) {
foundFiles.push_back(entry.path());
}
}
}
}
catch (const filesystem::filesystem_error& e) {
cerr << "Ошибка доступа к файловой системе: " << e.what() << endl;
}
}
}
catch (const filesystem::filesystem_error& e) {
cerr << "Ошибка доступа к файловой системе: " << e.what() << endl;
}
catch (const system_error& e) {
cerr << "Системная ошибка: " << e.what() << endl;
}
catch (const exception& e) {
cerr << "Другая ошибка: " << e.what() << endl;
}
return foundFiles;
}
Диск D:\ при поиске показал только три файла и выдал ошибку. А вот диск X:\ отказывается даже открываться. Файловая система везде одинаковая.