現在のユーザーの一時フォルダを取得する方法 質問する

現在のユーザーの一時フォルダを取得する方法 質問する

現在、現在のユーザーの一時フォルダー パスを取得するために次の関数を使用しています。

string tempPath = System.IO.Path.GetTempPath();

一部のマシンでは、現在のユーザーの一時フォルダー パスが次のように表示されます。

C:\Documents and Settings\administrator\Local Settings\Temp\

一部のマシンでは、次のようなシステム一時フォルダーのパスが表示されます。

C:\Windows\TEMP

MSDN ドキュメントには、上記の API は現在のシステムの一時フォルダーを返すとも記載されています。

次のように現在のユーザーの一時フォルダー パスを取得できる他の A​​PI はありますか?

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 の一時パスにフォールバックしていると考えられます。

おすすめ記事