Мне нужно получить безопасную временную папку, где я мог бы хранить временные файлы для своего приложения, но пока мои исследования привели меня к выводу, что все найденные мной подходы ошибочны.
Первой идеей было использование функции GetTempPath
, но это вызывает две проблемы:
- Папка может не существовать, поэтому мне придется обрезать папки одну за другой до корня и воссоздавать их, если они не существуют обратно по полному пути (подвержен ошибкам, утомителен)
- Из "WebLog Ларри Остермана" нажмите кажется, что
GetTempPath
может откатиться к каталогу USERPROFILE или Windows и извлечь целую партию файлов прямо здесь, то есть SUPER BAD (TM)!
В том же посте есть предложение использовать GetEnvironmentVariable, но это мне кажется опасной функцией (например, отсутствие TMP & TEMP envvars).
Можно ли использовать функцию очистки? Кажется, что SHGetKnownFolderPath не имеет ни малейшего представления, что такое временная папка.