Architecture 快照文件系统的体系结构解决方案
请帮我想一个问题。我有一个用C++/Qt编写的应用程序(我们称之为Architecture 快照文件系统的体系结构解决方案,architecture,Architecture,请帮我想一个问题。我有一个用C++/Qt编写的应用程序(我们称之为X),它应该存储并定期更新用户系统上安装的所有应用程序的信息。在Linux上,根据FreeDesktop.org建议解析所有.desktop文件需要花费太多时间–在我的计算机上大约需要2-3秒。因此,我决定使用缓存来处理文件 缓存应该如何工作: (注意,应用程序文件是一个包含用户系统上安装的应用程序信息的文件。例如,在Linux上,它可能是.desktop文件,在Windows上可能是.lnk文件等。) 首先,当应用程序文件位于用
X
),它应该存储并定期更新用户系统上安装的所有应用程序的信息。在Linux上,根据FreeDesktop.org
建议解析所有.desktop
文件需要花费太多时间–在我的计算机上大约需要2-3秒。因此,我决定使用缓存来处理文件
缓存应该如何工作:
(注意,应用程序文件是一个包含用户系统上安装的应用程序信息的文件。例如,在Linux上,它可能是.desktop
文件,在Windows上可能是.lnk
文件等。)
/usr/share/application
目录)X
启动时,它将遍历该列表中的所有文件夹,并创建所有文件的“快照”。快照应该是包含文件完整路径和上次修改时间的记录列表。然后,X
解析快照中的所有文件,并将必要的信息保存在,appsInformation
列表中X
将在该文件夹中创建文件的新快照。然后,它将新快照与旧快照进行比较,并创建三个更改列表:added
list,其中包含新快照中存在但旧快照中不存在的所有应用程序文件<代码>已修改的列表,其中包含所有应用程序文件的更改时间上次修改时间;和deleted
列表,其中包含旧快照中存在但新快照中不存在的所有应用程序文件。之后,它解析added
列表中新文件的信息,并将其推回到appsInformation
列表,根据modified
列表更改appsInformation
列表中已有的记录,并删除appsInformation
列表中与deleted
列表中的文件匹配的现有记录
appsInformation
list
我的问题是:我应该使用什么方法和工具来最好地构建所有这些体系结构?因此,使用快照应该比解析所有文件至少快两倍。我考虑过一些想法,但它们真的很难看,很难发布。我应该使用两个
QList
s对象,每个对象都包含一个文件信息和一个指向appsInformation
记录的指针吗?还是有更好的主意?谢谢你的帮助。我一开始不会使用投票。相反,我会使用一些基于回调的文件系统监控库。Windows和Linux都已具备此功能,请参见以下问题的答案:
appsInformationList
中添加/删除/修改元素