.NET Temp Temp Path

Как установить временный путь для этих двух методов?

System.IO.Path.GetTempFileName()
System.IO.Path.GetTempPath()

Приложение моей компании было разработано для Windows 2008 с.NET 4.0. Однако приложение будет поддерживать как Windows 2008, так и Azure.

Поскольку Azure не разрешает запись в локальный файл, в Azure невозможно создать временный файл. В приложении есть много мест, где временный файл используется для больших работ (это означает, что мы не можем поместить данные в память, так как временный файл огромен).

Мой план собирается создать TempFileWrapper заменить оригинальную временную генерацию файла. Однако, если есть простой способ изменить возвращаемые значения из System.IO.Path.GetTempFileName() а также System.IO.Path.GetTempPathСпасает мои работы!

Спасибо!

2 ответа

Решение

Явно скопировано из этого сообщения в блоге, 3-й хит Google:

var tempPath = RoleEnvironment.GetLocalResource("Temp").RootPath;
Environment.SetEnvironmentVariable("TEMP", tempPath);
Environment.SetEnvironmentVariable("TMP", tempPath);

Документация MSDN описывает, как GetTempPath найти путь:

  1. Путь, указанный в переменной среды TMP.
  2. Путь, указанный в переменной среды TEMP.
  3. Путь, указанный в переменной среды USERPROFILE.
  4. Каталог Windows.

Так что просто измените переменную окружения TMP или TEMP.

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