現在、現在のユーザーの一時フォルダー パスを取得するために次の関数を使用しています。
string tempPath = System.IO.Path.GetTempPath();
一部のマシンでは、現在のユーザーの一時フォルダー パスが次のように表示されます。
C:\Documents and Settings\administrator\Local Settings\Temp\
一部のマシンでは、次のようなシステム一時フォルダーのパスが表示されます。
C:\Windows\TEMP
MSDN ドキュメントには、上記の API は現在のシステムの一時フォルダーを返すとも記載されています。
次のように現在のユーザーの一時フォルダー パスを取得できる他の API はありますか?
C:\Documents and Settings\administrator\Local Settings\Temp\
ベストアンサー1
System.IO.Path.GetTempPath()
GetTempPath(..)
は、Kernel32 でのネイティブ呼び出しのラッパーにすぎません。
見てhttp://msdn.microsoft.com/en-us/library/aa364992(VS.85).aspx
そのページからコピーしました:
GetTempPath 関数は、次の順序で環境変数の存在を確認し、最初に見つかったパスを使用します。
- TMP 環境変数によって指定されたパス。
- TEMP 環境変数によって指定されたパス。
- USERPROFILE 環境変数で指定されたパス。
- Windows ディレクトリ。
「Windows ディレクトリ」が Windows の下の temp ディレクトリを意味するのか、それとも Windows ディレクトリ自体を意味するのか、私にはよくわかりません。Windows ディレクトリ自体に temp ファイルをダンプするのは望ましくないケースのように思えますが、誰にもわかりません。
したがって、そのページとあなたの投稿を組み合わせると、管理者ユーザーの TMP、TEMP、または USERPROFILE 変数のいずれかが Windows パスを指しているか、または設定されておらず、Windows の一時パスにフォールバックしていると考えられます。