2

我们终于开始着手将我们的软件文档从程序自己的目录中移出并移到“我的文档”中。我们还在清单中添加了“requestedPrivileges”行,以防止虚拟化进一步出现问题。

但是,如果我们只这样做,那么在 Vista/7 中运行旧版本的任何人都可能在更新后在隐藏的 VirtualStore 目录中丢失他们的工作。那么迁移到 21 世纪的首选方式是什么?

坦率地说,我对复制文件有点警惕,特别是因为我似乎无法找到一种程序化的方式来获取影子目录,但大概很多其他人在我们之前一定遇到过同样的问题。

4

1 回答 1

2

不要添加 requestedPrivileges ,除非您合法地需要管理权限才能使您的程序运行 - 您的描述中没有任何内容表明您这样做。这也应该让您在第一次启动时简单地复制文件,就好像它们仍在您的程序目录中一样,因为任何虚拟化仍然有效。

但是,如果您必须在未启用 UAC 的情况下进行迁移,您可以在%LOCALAPPDATA%\VirtualStore\path\to\file. 例如,如果您的文件存储在 C:\Program Files\OurApp\ 中,您将在%LOCALAPPDATA%\VirtualStore\Program Files\OurApp\.

要获取 的路径%LOCALAPPDATA%,您可以使用SHGetSpecialFolderPath作为CSIDL_LOCAL_APPDATACSIDL 参数。

于 2011-03-15T15:56:46.460 回答