Вы можете использовать несколько методов.
- Сканирование всех каталогов, добавленных пользователем, чтобы увидеть, изменилась ли последняя измененная временная метка.Если он перепроверил файл.Вы можете запустить это в отдельном потоке с низким приоритетом, если хотите.
- Когда пользователь нажимает на звуковую дорожку в пользовательском интерфейсе, повторно сканирует файл.Если он не существует, предупредите пользователя и удалите запись.Если она существует, проверьте отметку времени и обновите ее соответствующим образом.
- Предоставьте пользователю возможность повторного сканирования всей библиотеки.
- Если отметка времени папки, в которой содержатся песни, изменяется, вы можете выполнить ее повторное сканированиевместе с любыми подпапками и соответствующим образом обновите библиотеку.
- Если файл все еще существует, вам, вероятно, не нужно удалять его из базы данных.
Проверка метки временифайлы (как созданные, так и измененные), как правило, дают вам хорошее представление о том, какие обновления необходимо вносить в базу данных, если таковые вообще имеются.
Вы также можете предупредить пользователя о возможных изменениях и спросить их, хотят ли онивыполнить повторное сканирование в зависимости от типа обнаруженных изменений.Обход подкаталогов и обработка нескольких тысяч файлов, вероятно, не займет столько времени, сколько вы думаете.
При повторном сканировании файла вам не нужно сравнивать его с существующей записью в базе данных.Просто выполните SQL UPDATE и покончите с этим.Если вы еще не знакомы с SQL, я предлагаю вам изучить и поэкспериментировать с некоторыми примерами операторов, доступных в сети.Помните, что если вы выполняете одну транзакцию SQL для каждого отсканированного файла, это займет значительно больше времени.