如何监视和同步文件集合
How do I monitor and synchronize a collection of files?
嗨,我想为我的应用程序创建一个简单的音乐库,它使用sqlite来存储有关文件的信息。我想知道如何更新我的数据库时,文件组成的库更改。
-
我想弄清楚是否需要更新数据库的一种方法是计算组成库的文件数量与数据库中的文件数量。但是,如果有数千个文件,这种方法似乎要花费很多时间。有更好的方法吗?
-
我如何"更新"我的数据库没有实际通过每个文件再次,获得文件信息,如艺术家,专辑等,并与我的数据库比较,看看我是否需要添加或从数据库中删除文件?
您可以使用几种方法。
- 扫描用户添加的所有目录,查看最后修改的时间戳是否已更改。如果有,则重新扫描文件。如果你愿意,你可以在一个单独的线程中以低优先级运行它。
- 当用户在UI中单击音轨时,重新扫描文件。如果不存在,则提醒用户并删除该条目。如果存在,检查时间戳并相应地更新。
- 为用户提供重新扫描整个库的选项
- 如果已知包含歌曲的文件夹的时间戳发生变化,您可以重新扫描它以及任何子文件夹并相应地更新库。
- 如果文件仍然存在,你可能不需要从数据库中删除它。
检查文件(创建和修改)的时间戳通常会让您很好地了解需要对数据库进行哪些更新。
您还可以提醒用户可能发生的更改,并询问他们是否要根据检测到的更改类型重新扫描。遍历子目录和处理几千个文件可能不会像您想象的那样花费那么多时间。
重新扫描文件时,您不需要将其与数据库中的现有记录进行比较。只需执行SQL UPDATE即可。如果您还不熟悉SQL,我建议您研究和实验一些网络上可用的示例语句。请记住,如果对扫描的每个文件执行单个SQL事务,则需要相当长的时间。
相关文章:
- 同步文件读取同一文件 c
- 多个线程/进程是否可以在不同步的情况下同时从/写入文件的非重叠区域?
- 从 FutureAccessList 同步获取文件夹路径
- UWP 是否有同步文件读/写 API
- git:将同一文件的两个位置保持同步
- 与更新的输入文件同步程序
- rsyslog写入同步文件不会阻止
- 用于文件同步的简单客户端
- 如何将记忆映射的文件与另一个进程写入文件同步
- QFileInfo 是否与文件同步
- 如何同步 2 个或更多监视文件夹
- 实现定义的文件流同步 - 原因
- FTP 文件夹同步 c / obj c.
- 关闭 fstream 是否保证文件系统同步
- 同步文件和更改数据的最佳方式
- 同步文件,删除相同的数据
- 在文件中存储和同步字符串列表
- 同步文件与sqlite数据库qt c++
- 在不锁定文件的情况下同步更新文件
- 如何监视和同步文件集合