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