Ответ 1
использование
Path.GetTempPath();
или
Path.GetTempFileName();
Как заметил комментатор, GetTempFileName() не является потоковым, но вы можете создавать уникальные имена файлов на основе GUID.
У меня есть файл, который мне нужно записать во временное местоположение, что самое лучшее место в Windows? Этот файл не должен двигаться, поскольку мне нужно его прочитать пару раз и удалять его, когда я закрываю программу.
использование
Path.GetTempPath();
или
Path.GetTempFileName();
Как заметил комментатор, GetTempFileName() не является потоковым, но вы можете создавать уникальные имена файлов на основе GUID.
Другие избили меня в отношении
System.IO.Path.GetTempPath()
Но вы также можете посмотреть папку данных приложения. Это позволит вам больше контролировать ваш файл, так как у них есть 1 общий доступ для всех пользователей или 1 на пользователя.
Application.CommonAppDataPath
Application.UserAppDataPath
Используйте функцию Windows API GetTempPath()
из System.IO.Path
(см. MSDN)
using System.IO
...
myTempPath = Path.GetTempPath();
Вы должны знать, что файловая система вполне может измениться во время выполнения вашей программы. Любой путь Temp может измениться (маловероятно, предоставлен), или ваш временный файл мог быть перемещен или удален пользователем.
Будьте готовы проверить его существование каждый раз, когда вы обращаетесь к нему и обрабатываете случай, когда он не будет изящно найден.
Если вам нужно, чтобы ваше приложение записывалось во временное место и работало с частичным доверием, вам нужно посмотреть Изолированное хранилище.
Если вы хотите создать свое собственное пользовательское временное имя файла во временном местоположении, я использую что-то вроде этого, чтобы отключить PATH и применить свое собственное имя файла...
string wsPDFfile = Path.GetTempPath() + wsStudentID + "_" + Path.GetFileNameWithoutExtension(Path.GetTempFileName()) + ".pdf";