我如何知道USB驱动器的内容是否已更改

我如何知道USB驱动器的内容是否已更改,usb,fat32,Usb,Fat32,我正在编写一个嵌入式系统多媒体应用程序,其中支持从USB驱动器播放。通常,当插入USB驱动器时,应用程序会解析整个USB驱动器,以列出驱动器中的所有歌曲和视频。此列表存储在数据库中。如果以后连接相同的驱动器,应用程序将使用数据库中的列表 使用USB设备描述符中的序列号识别驱动器。但问题是,我如何检测到添加了任何新内容或删除了任何现有内容? 目前,我的目标是只支持FAT32格式的USB驱动器 有没有办法检测驱动器内容的变化?与上次访问的时间戳或上次修改的群集类似?如果您已经访问了原始块设备,则可以

我正在编写一个嵌入式系统多媒体应用程序,其中支持从USB驱动器播放。通常,当插入USB驱动器时,应用程序会解析整个USB驱动器,以列出驱动器中的所有歌曲和视频。此列表存储在数据库中。如果以后连接相同的驱动器,应用程序将使用数据库中的列表

使用USB设备描述符中的序列号识别驱动器。但问题是,我如何检测到添加了任何新内容或删除了任何现有内容? 目前,我的目标是只支持FAT32格式的USB驱动器


有没有办法检测驱动器内容的变化?与上次访问的时间戳或上次修改的群集类似?

如果您已经访问了原始块设备,则可以缓存数据块的相关部分。不管是空闲集群的数量还是最近分配的集群数量的变化都会告诉您发生了什么变化,尽管您必须手动跟踪这些变化。目录表中最后修改的条目对此可能有用,但我认为它不一定可靠——这取决于写入设备的内容有多严格。

如果您可以访问原始块设备,则可以缓存设备的相关部分。不管是空闲集群的数量还是最近分配的集群数量的变化都会告诉您发生了什么变化,尽管您必须手动跟踪这些变化。目录表中最后一个修改的条目可能是有用的,但是我认为它不一定是可靠的-这取决于对设备所写的是多么严格。

由于序列号并不总是存在,您可能会考虑总是重新加载设备的内容。那么,更改内容就不是问题了。我怀疑你无论如何都必须阅读FAT/目录。但是如果媒体中存在巨大的文件夹结构,重新加载内容可能需要非常长的时间。这就是为什么我一直在寻找任何机制来检测媒体中的任何更改。您可以在缓存数据库中保留文件名和时间戳的列表。您只需重新加载更改的内容。在极端情况下,解析设备上的目录将相对较快。因为序列号并不总是存在,所以您可能会考虑总是重新加载设备的内容。那么,更改内容就不是问题了。我怀疑你无论如何都必须阅读FAT/目录。但是如果媒体中存在巨大的文件夹结构,重新加载内容可能需要非常长的时间。这就是为什么我一直在寻找任何机制来检测媒体中的任何更改。您可以在缓存数据库中保留文件名和时间戳的列表。您只需重新加载更改的内容。解析设备上的目录将相对较快,但在极端情况下除外。