加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-14 01:42:45 所属栏目:Windows 来源:网络整理
导读:我想在 Windows中从一些C创建一个唯一的临时目录 代码(不是C或C#).我想这样做,以便我可以放一些温度 目录中的文件,然后在完成后轻松删除它们 (通过递归删除目录). 我基本上在寻找一个相当于linux的 mkdtemp 功能.有一个C#的答案here和答复在this question 建
我想在 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并不总是需要的,特别是如果您正在编写服务器代码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读