Планирование программы индексации файлов - PullRequest
2 голосов
/ 03 февраля 2011

Я немного новичок в C ++, но не программирую вообще.Я хочу написать свою первую учебную программу на C ++ как программу индексации файлов.

Кажется, достаточно просто сканировать каталоги на наличие имен, хранить эту информацию и фильтровать их в зависимости от того, что я хочу просмотреть.

В какой-то момент меня беспокоит то, что я хочуиндексировать весь диск (у меня есть дополнительный 1 ТБ диск помимо моей ОС для хранения файлов).У меня там около 400 000-500 000 файлов, и мне было интересно, как лучше всего хранить эту информацию?Я очень сомневаюсь, что хранение всех этих записей в текстовом файле является оптимальным и хотел бы думать, что это наивно.

Есть ли еще что-то, о чем я должен беспокоиться?

Спасибо.

Ответы [ 2 ]

1 голос
/ 03 февраля 2011

Не является ли какая-то база данных очевидным ответом?

Если вы не хотите подключаться к серверу, вы можете попробовать что-то вроде SQLite.В качестве альтернативы, если вам нужно только выполнить базовый поиск, вы также можете создать свой собственный формат файла.Вы можете использовать любую комбинацию двоичных и текстовых данных в вашем файле.Трудно предложить возможные макеты, не зная, какие данные нужно хранить и как вы будете к ним обращаться.

0 голосов
/ 03 февраля 2011

Вы можете безопасно сохранить ваши данные в текстовом файле.Тем не менее, вам нужно будет прочитать файл в память при запуске и выполнить все сложные операции в памяти.Даже если бы мы приняли наивный подход, когда вы сохраняете путь к файлу для каждого файла, вы все равно посмотрите на ~ 100 байт / файл или ~ 50 мегабайт.Разумный подход хранит только имя файла и указатель на имя каталога.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...