Как я могу синхронизировать структуру файловой системы с SQL? - PullRequest
2 голосов
/ 24 августа 2009

В настоящее время у меня есть путь к файловой системе, который я хотел бы проиндексировать в базе данных SQL. Мне нужно получить доступ к данным, чтобы я мог выполнять запросы к файлам на основе измененного времени, или частичных имен, или многих других элементов.

Есть ли способ каким-либо образом автоматически синхронизировать файловую систему с базой данных или даже получить доступ к файловой системе через sql-подобный интерфейс без необходимости рекурсивного сканирования папок?

Я проверял Microsoft Sync Framework 2.0, поскольку он теперь поддерживает базы данных SQL, но, похоже, не поддерживает синхронизацию файлов с базами данных.

Я уверен, что другие поставщики делают что-то подобное, например, Microsoft для базы данных файлов в Media Center или программы типа TVersity, которые также хранят базу данных файлов.

Ответы [ 2 ]

1 голос
/ 24 августа 2009

Вы не упоминаете язык программирования, но вот как я это сделаю, и я думаю, что большинство медиа-приложений, поддерживающих библиотеку, делают это (хотя они могут быть пишущими на разных языках и использовать Win32 API).

Используя .net для получения ваших начальных данных, я однажды рекурсивно просканировал каталог, а затем добавил всю информацию в базу данных. Затем я запускаю службу, используя объект FileSystemWatcher , чтобы получать уведомления об изменениях и соответствующим образом обрабатывать события.

0 голосов
/ 24 августа 2009

Звучит так, как вы хотите Поиск Windows . (или функцию библиотеки Windows 7, если вы чувствуете себя не в своей тарелке).

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

Кроме того, SQL может не быть лучшим инструментом для конкретной работы, в зависимости от того, что именно вы хотите найти. Известно, что древовидные структуры сложно эффективно представить в реляционных базах данных - ваши поиски могут быть довольно дорогими!

...