C#/WPF/VS2010 を使用して ArcMap のインストール可能な拡張機能を作成しています。(これは、ここで関係がある場合とない場合があります)。私がやりたいことの 1 つは、ユーザーの一時フォルダーにデータを保存することです。だから、私は次のようにフォルダを取得します:
public static string SystemTempPath = Path.GetTempPath();
すべてをコンパイルし、WPF デザイナーで (間接的に) 変数にバインドすると、プレビュー ペインに次のように表示されます。
"C:\Users\<username>\AppData\Local\Temp\"
素晴らしい、それが私が求めているものです。しかし、ArcMap で拡張機能を実行すると、次のような結果が得られます。
"C:\Users\<username>\AppData\Local\Temp\arcA6C5\"
最後に、ArcMap を再ロードするたびに変更される追加のフォルダーに注意してください。したがって、これは拡張機能であり、ArcMap カーネルに翻弄されているため、ユーザーの一時変数ではなく、ArcMap の作成された一時フォルダーを使用しているようです。
私の質問:文字列操作以外に文法的にこれを回避する方法はありますか? この余分なものは常にそこにあり、単純に切り捨てられると想定できますが、この方法はやや汚いようです。私も同じ結果でこれを試しました:
System.Environment.GetEnvironmentVariable("TEMP");
System.Environment.GetEnvironmentVariable("TMP");
とにかく、これはわずかに汚れが少ないだけです。
助けてくれてありがとう。