如何监视和同步文件集合

How do I monitor and synchronize a collection of files?

本文关键字:同步 文件 集合 监视 何监视      更新时间:2023-10-16

嗨,我想为我的应用程序创建一个简单的音乐库,它使用sqlite来存储有关文件的信息。我想知道如何更新我的数据库时,文件组成的库更改。

  • 我想弄清楚是否需要更新数据库的一种方法是计算组成库的文件数量与数据库中的文件数量。但是,如果有数千个文件,这种方法似乎要花费很多时间。有更好的方法吗?

  • 我如何"更新"我的数据库没有实际通过每个文件再次,获得文件信息,如艺术家,专辑等,并与我的数据库比较,看看我是否需要添加或从数据库中删除文件?

您可以使用几种方法。

  1. 扫描用户添加的所有目录,查看最后修改的时间戳是否已更改。如果有,则重新扫描文件。如果你愿意,你可以在一个单独的线程中以低优先级运行它。
  2. 当用户在UI中单击音轨时,重新扫描文件。如果不存在,则提醒用户并删除该条目。如果存在,检查时间戳并相应地更新。
  3. 为用户提供重新扫描整个库的选项
  4. 如果已知包含歌曲的文件夹的时间戳发生变化,您可以重新扫描它以及任何子文件夹并相应地更新库。
  5. 如果文件仍然存在,你可能不需要从数据库中删除它。

检查文件(创建和修改)的时间戳通常会让您很好地了解需要对数据库进行哪些更新。

您还可以提醒用户可能发生的更改,并询问他们是否要根据检测到的更改类型重新扫描。遍历子目录和处理几千个文件可能不会像您想象的那样花费那么多时间。

重新扫描文件时,您不需要将其与数据库中的现有记录进行比较。只需执行SQL UPDATE即可。如果您还不熟悉SQL,我建议您研究和实验一些网络上可用的示例语句。请记住,如果对扫描的每个文件执行单个SQL事务,则需要相当长的时间。