在Windows中从纯C创建一个唯一的临时目录

前端之家收集整理的这篇文章主要介绍了在Windows中从纯C创建一个唯一的临时目录前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在 Windows中从一些C创建一个唯一的临时目录
代码(不是C或C#).我想这样做,以便我可以放一些温度
目录中的文件,然后在完成后轻松删除它们
(通过递归删除目录).

我基本上在寻找一个相当于linux的
mkdtemp
功能.有一个C#的答案here和答复在this
question

建议使用Boost.但是,由于我使用C,这些解决方案不起作用
为了我.

到目前为止,我所能想到的最好的就是使用
GetTempFileName
其次是CreateDirectory,
但问题是如果我问
GetTempFileName
要创建一个唯一的文件名,它也会创建文件(其中我
不要,因为我想要做一个目录).

相关地,有
GetTempPath,
它从环境返回用户的临时文件夹的位置
变量 – 但是,因为我想创建我自己的目录,我可以
安全删除以后,我还是需要在任何目录里创建一个目录
路径会返回.

看来,如果我想要创建一个唯一的目录,我必须
创建一个临时文件,获取名称,删除它,然后创建一个
同名的目录 – 这听起来很杂乱.
任何其他想法?

您可以使用GetTempPath返回与Guid连接以确保目录的唯一性.您可以使用 UuidCreate CoCreateGuid Function创建Guid.

要递归地删除目录,这里有一个基于FindFirstFile,FindNextFile,DeleteFile和RemoveDirectory的纯C:How to remove directory recursively?的例子.

还有SHFileOperation,但它更重量级,基于Windows Shell功能,并且Shell DLL并不总是需要的,特别是如果您正在编写服务器代码.

猜你在找的Windows相关文章