我有一个用 Qt 编写的跨平台程序,它可以创建日志文件 ( MyProg.log
) 和 sqlite3 数据库 ( myprog.db
)。我正在使用 Inno Setup 在 Windows 上安装该程序。
在 Windows XP 上,日志和数据库文件与可执行文件一起创建,一切运行良好。在 Vista 上,程序按预期运行,但当我浏览包含可执行文件的目录时,我看不到这两个文件。我打开一个调试窗口,它报告说它确实在使用位于可执行文件旁边的文件(我看不到)。
升级时我需要不时删除这些文件,但我发现这是不可能的。我甚至运行了卸载程序并删除了应用程序目录,但当我重新安装时,它仍在使用旧的数据库文件。这是在客户端的计算机上,所以我不确定它的历史记录。
Vista 是否做了一些奇怪的权限设置?我如何找到这些“隐藏”文件?
答案1
在 Vista 和 Windows7 上,“Program Files”目录树不可由应用程序写入。相反,它们会透明地在某个位置创建文件
C:\Users\brianz\AppData\VirtualStore\
(假设您的用户名是 brianz)