如何在任何地区获得windows虚拟存储路径?对于英语,我们可以将其硬编码为%LocalAppData%\VirtualStore,但据我所知,"VirtualStore“是一个本地化的字符串,在不同的语言中是不同的。有什么方法可以让我找到到虚拟商店的本地化路径吗?
发布于 2014-01-06 04:00:25
没有记录在案的方法来检索到VirtualStore文件夹的路径。
UAC数据重定向功能是一个临时兼容性攻击;只用于使buggy的应用程序不崩溃。微软说你不应该依赖它。任何Windows2000或更高版本的应用程序都不需要VirtualStore。
幸运的是,您的应用程序甚至不需要关心到虚拟存储文件夹的路径。
禁用应用程序的数据重定向
通过将requestedExecutionLevel of asInvoker添加到应用程序的程序集清单中,您可以完全关闭数据重定向(这样就不会有任何东西进入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文件夹中的文件。
最好的解决方案是禁用文件虚拟化,并修复应用程序。
微软不愿意为一个临时的黑客增加一些功能,让那些有缺陷的应用程序一瘸一拐。因此,没有记录在案的通往这条道路的方法。
https://stackoverflow.com/questions/20905961
复制相似问题