【发布时间】:2011-06-09 02:33:21
【问题描述】:
我想从某个 C 语言在 Windows 中创建一个唯一的临时目录 代码(不是 C++ 或 C#)。我想这样做,以便我可以放一些临时 目录中的文件,然后在我完成后轻松删除它们 (通过递归删除目录)。
我本质上是在寻找一个相当于 linux
mkdtemp
功能。有一个 C# 答案 here,以及 this
question 上的回复
建议使用 Boost。但是由于我使用的是 C,因此这些解决方案不起作用
对我来说。
到目前为止,我能想到的最好的方法就是使用
GetTempFileName
其次是CreateDirectory,
但问题是如果我问
GetTempFileName
要创建一个唯一的文件名,它还将创建文件(我
不想要,因为我想创建一个目录)。
相关的,有
GetTempPath,
它从环境中返回用户临时文件夹的位置
变量 - 但因为我想创建自己的目录,我可以
稍后安全删除,我仍然需要在任何目录中创建一个目录
它会返回的路径。
看起来如果我想创建一个唯一的目录,我必须 创建一个临时文件,获取名称,删除它,然后创建一个 具有相同名称的目录 - 这听起来很混乱。 还有其他想法吗?
【问题讨论】:
-
你最后一段中的想法是行不通的——它会受到竞争条件的影响。
标签: c windows winapi temporary-directory