繁体   English   中英

如何监控和同步文件集合?

[英]How do I monitor and synchronize a collection of files?

您好我正在尝试为我的应用程序创建一个简单的音乐库,该应用程序使用 sqlite 来存储有关文件的信息。 我想知道当组成库的文件发生变化时如何更新我的数据库。

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

  • 如何“更新”我的数据库,而无需再次浏览每个文件,获取艺术家、专辑等文件信息,并将其与我的数据库进行比较以查看是否需要从数据库中添加或删除文件?

您可以使用多种技术。

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

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

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

重新扫描文件时,您实际上不需要将其与数据库中的现有记录进行比较。 只需执行 SQL UPDATE 并完成它。 如果您还不熟悉 SQL,我建议您学习并尝试一些网络上可用的示例语句。 请记住,如果您为每个扫描的文件执行单个 SQL 事务,则将花费相当长的时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM