我有一个基于QT的应用程序,它包含一个配置文件(扩展名为cfg的文本文件)和一个随应用程序一起安装的SQLite数据文件。 代码验证配置文件是否存在于安装目录中。
我有这个奇怪的问题,当运行给定的cfg文件时没有更新,但配置被保存在其他地方。即使我删除cfg文件,应用程序仍然有效。这就好像操作系统正在复制配置文件和数据库文件并不断更新它们而不是实际文件。
如果应用程序安装在另一个驱动器(例如d::)中,则此行为不存在。此外,如果我以管理员身份运行应用程序,应用程序将编辑并使用存储在C:驱动器中的配置文件。 是否存在安装在C盘中的可编辑文件的缓存。如果是这样,如何绕过它。提前谢谢。
答案 0 :(得分:1)
这就好像操作系统正在复制配置文件和数据库文件并不断更新它们而不是实际文件。
情况可能确实如此。 Windows Vista及更高版本引入了 Windows Virtual Store 的概念,以防止应用程序写入可能有害的位置。有关解释,请参阅例如http://portableapps.com/node/35519