其他语言环境中的Windows Virtual Store位置

时间:2014-01-03 14:34:08

标签: windows localization locale uac

如何在任何区域设置中获取Windows虚拟商店路径?对于英语,我们可以将其硬编码为%LocalAppData%\VirtualStore,但据我所知,“VirtualStore”是一个本地化的字符串,在不同的语言中有所不同。是否有任何方式我可以获得虚拟商店的本地化路径?

1 个答案:

答案 0 :(得分:0)

没有记录的方法来检索VirtualStore文件夹的路径。

UAC数据重定向功能是临时兼容性黑客攻击;仅用于使错误的应用程序不崩溃。微软表示你不应该依赖它。 Windows 2000或更高版本的任何应用程序都不需要VirtualStore。

幸运的是,您的应用程序甚至不需要关注关于虚拟商店文件夹的路径。

禁用应用的数据重定向

您可以通过向应用程序的程序集清单中添加 asExvoker requestedExecutionLevel 来完全关闭数据重定向(以便不会进入VirtualStore):

<强> AssemblyManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
</asmv1:assembly>

或者您可以继续从不应该的位置读取和写入文件。数据重定向将透明地让您查看VirtualStore文件夹中的文件。

最佳解决方案是禁用文件虚拟化并修复您的应用。

微软并没有倾向于为临时黑客添加功能,让有缺陷的应用程序瘫痪。因此,没有记录的路径。