Правильное местоположение для сохранения временного файла в Windows?

У меня есть файл, который мне нужно записать во временное местоположение, что самое лучшее место в Windows? Этот файл не должен двигаться, поскольку мне нужно его прочитать пару раз и удалять его, когда я закрываю программу.

Ответ 1

использование

Path.GetTempPath();

или

Path.GetTempFileName();

Как заметил комментатор, GetTempFileName() не является потоковым, но вы можете создавать уникальные имена файлов на основе GUID.

Ответ 2

Другие избили меня в отношении

System.IO.Path.GetTempPath()

Но вы также можете посмотреть папку данных приложения. Это позволит вам больше контролировать ваш файл, так как у них есть 1 общий доступ для всех пользователей или 1 на пользователя.

Application.CommonAppDataPath
Application.UserAppDataPath

Ответ 3

Используйте функцию Windows API GetTempPath() из System.IO.Path (см. MSDN)

using System.IO

...

myTempPath = Path.GetTempPath();

Вы должны знать, что файловая система вполне может измениться во время выполнения вашей программы. Любой путь Temp может измениться (маловероятно, предоставлен), или ваш временный файл мог быть перемещен или удален пользователем.

Будьте готовы проверить его существование каждый раз, когда вы обращаетесь к нему и обрабатываете случай, когда он не будет изящно найден.

Ответ 4

Если вам нужно, чтобы ваше приложение записывалось во временное место и работало с частичным доверием, вам нужно посмотреть Изолированное хранилище.

Ответ 5

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

string wsPDFfile = Path.GetTempPath() + wsStudentID + "_" + Path.GetFileNameWithoutExtension(Path.GetTempFileName()) + ".pdf";