我想从一些 C 代码(不是 C++ 或 C#)在 Windows 中创建一个唯一的临时目录。我想这样做,以便可以将一些临时文件放在目录中,然后在完成后轻松删除它们(通过递归删除目录)。
我本质上是在寻找与 linux
mkdtemp
功能等效的东西。这里有一个 C# 答案,对这个问题的回答
建议使用 Boost。但是由于我使用的是 C,因此这些解决方案对我不起作用。
到目前为止,我能想到的最好的方法是使用
GetTempFileName
,CreateDirectory
但问题是,如果我要求
GetTempFileName
创建一个唯一的文件名,它也会创建文件(我不想要,因为我想创建一个目录)。
相关的是
GetTempPath
,它从环境变量返回用户临时文件夹的位置 - 但由于我想创建自己的目录,以后可以安全地删除,我仍然需要在它返回的任何路径内创建一个目录。
看起来如果我想创建一个唯一的目录,我必须创建一个临时文件,获取名称,删除它,然后创建一个同名的目录 - 这听起来很混乱。还有其他想法吗?