web-dev-qa-db-ja.com

具体的には、C#でシステムTEMPパスを取得する

System.IO.Path.GetTempPath()メソッドを使用して、環境変数から一時フォルダーを取得しています。ただし、これにより、現在のユーザーのTEMP変数またはTMP変数が常に返されることがわかりました。存在しない場合は、システムTEMP変数またはTMP変数が返されます。

常にシステムTEMP変数を取得する方法はありますか?

私は、Path.GetTempPath()メソッドに関するSO)に関する他のいくつかの質問を知っています。ここで、回答は、このメソッドが何を返すかを決定する方法について、MSDNからのドキュメントを参照しています。この方法はMSDNからのものであり、システム一時フォルダーを確実に取得する別の方法があるかどうかを尋ねています。

12
Brian

おそらくあなたは Environment.GetEnvironmentVariable メソッドを探しています。

この使用法により、ユーザーの%TEMP%フォルダーが得られます。

Environment.GetEnvironmentVariable("TEMP");

c:\ Users\MyUserName\AppData\Local\Tempなど

そしてこれはあなたにシステムの%TEMP%フォルダーを与えます:

Environment.GetEnvironmentVariable("TEMP", EnvironmentVariableTarget.Machine);

c:\ WINDOWS\TEMPなど

23
sudheeshix