10

私のSilverlightアプリケーションでは、通常のSaveFileDialogを使用して、プロンプトでファイルを保存しています。一部のコンピュータで仮想ディレクトリを使用する一時ディレクトリ

C:\Users\<user>\Appdata\Local\Microsoft\Windows\Temporary Internet Files\Virtualized\C\Users\<user>\Desktop 

は誰もが知っています:

問題は、ユーザーが保護モードでIEを使用して、デスクトップ上の例に保存しようとした場合、一部のWindows 7のコンピュータで、節約のためのパスはこのように終わるということです私は、このパスがウィンドウ上の正規のパスの代わりに使用されることを示すフラグまたは値を見つけることができますか?

は、私はこのことit'sa少しロシアが、仮定知っている...だから仮想化されたパスを示すフラグや値はありません恐れて研究 - 私の少し後に、あなたに

+0

Path.GetTempPathメソッドを試したことがありますか? –

+0

"Out of Browser"モードでアプリケーションを実行していますか? – Jehof

+0

は、IEが保護モードになっているときにPathが常にこのように見えることを前提に、Internet ExplorerがInterop経由でProtectionModeであるかどうかを調べることができます。このメソッド[IEIsProtectedModeProcess]はこの情報を参照してください。http://www.codeproject.com /記事/ 18866/A-Developer-s-Survival-Guide-to-IE-Protected-Mode#whenispmon(残念ながらこれはすべてC++です) – makim

答えて

6

ありがとうございましたある静的あなたがCにこのような何かを行うことができ、マイクロソフト\ Windowsの\インターネット一時ファイル\仮想化\

\

パスが仮想化されたフォルダを指している場合には

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; 
} 
+0

ありがとう私がやっていること、それは動作しますが、私はより良い解決策を探していました、文字列と比較して快適に感じることはありません... – Marko

関連する問題