Я нахожусь в середине написания инструмента, который находит потерянные файлы библиотеки iTunes, как для Mac, так и для Windows. На Mac я могу быстро найти файлы, называя их замечательной функцией «CatalogSearch».Быстрый поиск набора имен файлов на томах NTFS, в идеале через его MFT
В Windows, однако, похоже, что нет API-интерфейса ОС для поиска по имени файла (или есть?).
Через некоторое Googling, я узнал, что есть инструменты (как TFind, Все), что читать каталог NTFS напрямую и проверить его, чтобы найти файлы по имени.
Я хотел бы сделать то же самое, но без необходимости запускать с нуля (хотя в прошлом я написал немало дисковых инструментов, у меня никогда не было энергии, чтобы врываться в NTFS).
Интересно, есть ли готовые библиотеки, возможно, как .dll, что даст мне эту функцию поиска: Передайте имя файла, верните его путь.
В качестве альтернативы, как насчет службы индексирования Windows? По крайней мере, когда я пробовал это в недавно установленной системе XP Home, Операция под меню Начните с, фактически сканирование всех каталогов, что предполагает отсутствие полной базы данных. Поскольку я вообще не пользователь Windows, мне интересно, почему это не работает.
В конце концов, полностью Решение, которое мне нужно: у меня есть список имен файлов для поиска, и мне нужен код, который ищет весь диск (или использует для него БД), чтобы получить все результаты в один раз. Например, поиск не должен запускать новое полное сканирование для каждого файла, который я просматриваю. Вот почему я думаю, что способ MFT будет оптимальным, поскольку он может быстро перебирать все имена, сравнивая каждый с моим списком.
Поиск в Windows выполняется быстро, только если вы ищете индексированные местоположения. – MSalters
Я думаю, вы имеете в виду это: http://msdn.microsoft.com/en-us/library/bb266517(v=VS.85).aspx?ppud=4 - выглядит сложным. Спасибо, спасибо. –
Не делайте этого, пожалуйста, пожалуйста. Слушайте парня, который говорит вам использовать журнал USN –