我想在
Windows中从一些C创建一个唯一的临时目录
代码(不是C或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并不总是需要的,特别是如果您正在编写服务器代码.