我们终于可以将软件的文档从程序自己的目录中移出来,放到“我的文档”中。 我们还在清单中添加了“requestedPrivileges”行,以防止虚拟化带来进一步的麻烦。
但是,如果我们只这样做了,那么在Vista / 7中运行旧版本的任何人都可能在更新之后在隐藏的VirtualStore目录中的某处丢失其工作。 那么迁入21世纪的首选方式是什么?
坦率地说,我对于复制文件有点谨慎,尤其是因为我似乎无法find一个在影子目录中获得程序化的方式,但是大概其他许多人肯定也面临同样的问题。
除非您合法需要管理权限才能使您的程序正常工作,否则请不要添加requestedPrivileges – 您的描述中没有任何内容表明您拥有这些权限。 这也应该让你简单地复制第一次启动时的文件,就好像它们仍然在你的程序目录中一样,因为任何虚拟化仍然有效。
但是,如果您绝对必须在未启用UAC的情况下执行迁移,则可以在%LOCALAPPDATA%\VirtualStore\path\to\file
找到您的%LOCALAPPDATA%\VirtualStore\path\to\file
。 例如,如果您的文件存储在C:\ Program Files \ OurApp \中,您可以在%LOCALAPPDATA%\VirtualStore\Program Files\OurApp\
找到它。
要获得%LOCALAPPDATA%
的路径,可以使用带有CSIDL_LOCAL_APPDATA
SHGetSpecialFolderPath作为CSIDL参数。