windows - 在 Windows 中获取安全的临时文件夹

标签 windows api filesystems temporary-files

我需要一个安全的临时文件夹,我可以在其中存储我的应用程序的临时文件,但到目前为止,我的研究使我得出结论,我发现的所有方法都是有缺陷的。

第一个想法是使用 GetTempPath 函数,但这会导致两个问题:

  • 该文件夹可能不存在,所以我必须将文件夹一个一个地截断到根目录,如果它们不存在则重新创建它们回到完整路径(容易出错,乏味)
  • 来自“Larry Osterman 的 WebLog”click似乎 GetTempPath 可能会回退到 USERPROFILE 或 Windows 目录并在其中提取大量文件,这太糟糕了!

在同一篇文章中,有人建议使用 GetEnvironmentVariable,但这对我来说似乎是一个危险的函数(例如缺少 TMP 和 TEMP 环境变量)。

我可以使用更简洁的功能吗?似乎 SHGetKnownFolderPath 不知道临时文件夹是什么。

最佳答案

您的程序可能不是唯一依赖 GetTempPath 的程序,因此期望它返回正确的可写路径是合理的。特别是因为 Windows 会自动为您初始化 TMP 和 TEMP 环境变量;有人将不得不费力地覆盖它们,他们有责任确保更改不会弄乱他们的系统。

我会继续假设 GetTempPath 正常工作,并担心在您尝试创建临时文件时失败 - 那时可能会发生其他错误,您无论如何都需要检查.

关于windows - 在 Windows 中获取安全的临时文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5538757/

相关文章:

python - 如何模拟 open(...).write() 而不会出现 'No such file or directory' 错误?

windows - ImageBase + SizeOfHeaders 会跳转到节表

linux - linux下是否可以监控所有进程对文件系统的所有写访问

windows - "findstr"Windows 命令排除评论中的搜索

jquery - Laravel API,请求 header 字段预检响应中的 Access-Control-Allow-Headers 不允许授权

api - Eventbrite 标签

java - 抛出 BadRequestException(ResponseEntity) 与捕获错误,返回 ResponseEntity(HTTPStatus.BadRequest) ReST API

将结构转换为字节数组并存储在数据库中。读取 db 并获取字节数组以在 C 中重新创建结构

ruby - 安装可移植 ruby​​ 和可移植 xampp 以便在我的 Windows 机器 : Is that possible? 中使用 compass 和 sass

python - 使用 python 脚本实现 Windows 服务器和 Windows 桌面的差异