2012-06-26 3 views
2

У меня есть веб-служба, которая вызывает другую исполняемую программу, которая извлекает список файлов и сохраняет их во временном месте, которое, в свою очередь, будет считаться веб-службой.Остается ли путь, возвращаемый Path.GetTempPath() постоянным?

Я думал, что буду использовать временную папку системы и узнал, что могу использовать функцию System.IO.Path.GetTempPath, чтобы получить временную папку и сохранить здесь мои файлы. Но когда я проверил выход, возвращаемый этой функцией, она дала мне

C: \ Users \ имя пользователя \ AppData \ Local \ Temp \ 15 \

я волнуюсь о \ 15 в конце пути. Означает ли это, что временная папка, возвращаемая GetTempPath, не является постоянной и продолжает меняться? Мне это нужно, чтобы быть постоянным, так как мне нужно веб-служба для чтения из вывода временных файлов с помощью исполняемого файла

+3

В тот момент, когда вы сохраните файл, не просто хранить имя файла, сохранить весь путь. Тогда не имеет значения, изменится ли он. – Ben

+0

Как вы можете контролировать, где другой исполняемый файл записывает файлы? Можно ли сделать то, что делает исполняемый файл без записи файлов на диск? Выполняется ли исполняемый файл в пределах того же идентификатора? – Jodrell

+0

Чтобы быть более конкретным ... Веб-служба вызывает исполняемый файл с идентификатором в качестве первого параметра. Моя идея заключалась в том, что исполняемый файл создаст файл с идентификатором как часть имени (скажем, MyService_ .jpg). Затем веб-служба будет считывать этот файл из папки temp (поскольку он знает идентификатор). Итак, @Ben я не сохраняю имя файла или путь где-нибудь – Sadhir

ответ

1

documentation говорит:

Этого метод проверяет существование переменной среды в следующем порядке и использует первый найденный путь:

1. Путь, указанный переменной окружения TMP.

  1. Путь, указанный переменной окружения TEMP.

  2. Путь, указанный переменной среды USERPROFILE.

  3. Каталог Windows.

Так что, если вы не измените свое окружение результат стабилен.

0

Даже если этот пост несколько старше, я хотел бы поделиться знаниями :-)

При работе на TerminalServer это поведение по умолчанию Windows, чтобы создать отдельную временную папку для каждого подключения к этому серверу. Есть способы повлиять на это, но прежде чем вы захотите это сделать, я предпочел бы размещать ваши файлы где-то в другом месте.

(http://blogs.msdn.com/b/oldnewthing/archive/2011/01/25/10119675.aspx)