【发布时间】:2011-08-28 23:38:27
【问题描述】:
我正在编写一个嵌入式系统多媒体应用程序,其中支持从 USB 驱动器播放。通常,当插入 USB 驱动器时,应用程序会解析整个 USB 驱动器以列出驱动器中存在的所有歌曲和视频。该列表存储在数据库中。如果稍后连接相同的驱动器,应用程序将使用数据库中的列表。
使用 USB 设备描述符中的序列号来识别驱动器。但问题是如何检测添加了任何新内容或删除了任何现有内容? 目前我的目标是仅支持 FAT32 格式的 USB 驱动器。
有什么方法可以检测到驱动器内容的变化吗?比如上次访问的时间戳或上次修改的集群?
【问题讨论】:
-
由于序列号并不总是存在,您可以考虑始终重新加载设备的内容。然后,更改的内容不是问题。我怀疑您无论如何都必须通读 FAT/目录。
-
但如果媒体中存在巨大的文件夹结构,重新加载内容可能需要很长时间。这就是为什么我一直在寻找任何机制来检测媒体的任何变化
-
您可以在缓存数据库中保留文件名和时间戳列表。您只需要重新加载更改的内容。在设备上解析目录会比较快,除非是极端情况。