Ошибка при поиске файлов на диске без указания конкретной папки. С++

Пытаюсь написать консольную программу для поиска файлов в системе. Если указать конкретную папку на диске, всё работает прекрасно, но если указать просто диск, то появляется системная ошибка. Пробовал запускать от имени администратора — не помогло. В чём может быть ошибка?

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:\ отказывается даже открываться. Файловая система везде одинаковая.


Ответы (0 шт):