C# 在某些计算机上使用虚拟化路径的临时目录

C# 在某些计算机上使用虚拟化路径的临时目录,c#,silverlight,internet-explorer,silverlight-oob,protected-mode,C#,Silverlight,Internet Explorer,Silverlight Oob,Protected Mode,在我的Silverlight应用程序中,我使用常规的SaveFileDialog提示用户保存一些文件 问题是,在某些Windows 7计算机上,如果用户在受保护模式下使用IE,并尝试保存到(例如在桌面上),则保存路径如下所示: C:\Users\<user>\Appdata\Local\Microsoft\Windows\Temporary Internet Files\Virtualized\C\Users\<user>\Desktop C:\Users\\Appda

在我的Silverlight应用程序中,我使用常规的SaveFileDialog提示用户保存一些文件

问题是,在某些Windows 7计算机上,如果用户在受保护模式下使用IE,并尝试保存到(例如在桌面上),则保存路径如下所示:

C:\Users\<user>\Appdata\Local\Microsoft\Windows\Temporary Internet Files\Virtualized\C\Users\<user>\Desktop
C:\Users\\Appdata\Local\Microsoft\Windows\Temporary Internet Files\Virtualized\C\Users\\Desktop
有人知道我在哪里可以找到标志或值,指示将在windows上使用此路径而不是常规路径吗


谢谢

所以经过一点研究,恐怕没有标志或值指示虚拟化路径

我知道这有点俄语,但假设这是静态的

\Microsoft\Windows\Internet临时文件\虚拟化\

您可以这样做来检查路径是否指向虚拟化文件夹

public static bool IsPathVirtualized(string path)
{
        bool isVirtualized = false;
        string pathToVirtualizedUserFolder = Path.Combine
        (
            Environment.SpecialFolder.LocalApplicationData + 
            @"Microsoft\Windows\Temporary Internet Files\Virtualized\"
        );

        if(path.StartsWith(pathToVirtualizedUserFolder))
        {
            isVirtualized = true;
        }
        return isVirtualized;
}

您是否尝试过使用Path.GetTempPath方法?您的应用程序是否在“浏览器外”模式下运行?假设IE处于保护模式时,路径总是这样,您可以尝试通过互操作检测IE是否处于保护模式,此方法[IEIsProtectedModeProcess]有关更多信息,请查看此链接(不幸的是,这都是C++)@科库兰,这就是我的方法using@Jehof是的,我有提升的特权,它是正确配置的,类似的事情我做,它的工作,但我正在寻找更好的解决方案,不觉得舒适的字符串比较。。。