Сам по себе C ++ не существует, но обычно поиск в каталоге происходит медленно из-за ввода-вывода, а также потому, что вы должны регистрировать каждый файл (или любой другой эквивалент ОС, не являющийся Unix-системой), чтобы найти что-либо, кроме его имени.Один из способов сделать это быстрее - сохранить сервер, который хранит inode и имена файлов в памяти.Конечно, сложность заключается в том, что информация об узле не является статичной.Вам нужно будет прослушивать изменения файловой системы, чтобы поддерживать ваш кэш в актуальном состоянии.Это определенно возможно в Linux, но у меня нет опыта работы с другими системами.Как вы можете видеть, другая тема этой проблемы заключается в том, что она сильно зависит от системы и, возможно, от файловой системы.Может быть, системно-независимая библиотека, такая как Boost :: Filesystem, может помочь, но я сомневаюсь, что она реализует обратные вызовы обновления каталога.
Может быть, просто установить Google Desktop?