我们终于可以把软件的文档从程序自己的目录中移出“我的文档”了。我们还在清单中添加了一个"requestedPrivileges“行,以防止虚拟化带来进一步的麻烦。
然而,如果我们只这样做,那么在Vista/7中运行旧版本的任何人在更新后很可能会在隐藏的VirtualStore目录中丢失他们的工作。那么,迁移到21世纪的首选方式是什么?
坦率地说,我对复制文件有些谨慎,特别是因为我似乎找不到一种编程的方法来获取影子目录,但想必有很多其他人在我们面前也遇到了同样的问题。
发布于 2011-03-15 15:56:46
不要添加requestedPrivileges,除非您合法地需要管理权限才能让您的程序工作--在您的描述中没有任何东西表明您需要。这还应该允许您在第一次引导时简单地复制文件,就像它们仍然在您的程序目录中一样,因为任何虚拟化都将仍然有效。
但是,如果您绝对必须在不启用UAC的情况下进行迁移,则可以在%LOCALAPPDATA%\VirtualStore\path\to\file
中找到您的文件。例如,如果您的文件存储在C:\Program \OurApp中,您将在%LOCALAPPDATA%\VirtualStore\Program Files\OurApp\
中找到它。
要获得%LOCALAPPDATA%
的路径,可以使用SHGetSpecialFolderPath和CSIDL_LOCAL_APPDATA
作为CSIDL参数。
https://stackoverflow.com/questions/5314188
复制相似问题