В частности, получение системного пути TEMP в C#

Я использую System.IO.Path.GetTempPath() метод для извлечения временной папки из переменных среды. Однако я обнаружил, что это всегда будет возвращать переменную TEMP или TMP для текущего пользователя, если она существует, в противном случае она вернет системную переменную TEMP или TMP.

Есть ли способ всегда получить переменную System TEMP?

Мне известно о нескольких других вопросах о SO относительно метода Path.GetTempPath(), где ответы ссылаются на документацию MSDN о том, как этот метод решает, что возвращать. Мне известно о поведении этого метода из MSDN, и я спрашиваю, есть ли другой способ убедиться, что я получаю системную временную папку.

1 ответ

Решение

Возможно, вы ищете метод Environment.GetEnvironmentVariable.

Это использование дает вам пользовательскую папку% TEMP%:

Environment.GetEnvironmentVariable("TEMP");

например, C:\Users\MyUserName\AppData\Local\Temp

И это дает вам системную папку% TEMP%:

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

такие как C:\WINDOWS\TEMP

Другие вопросы по тегам