微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Windows 中的给定用户下创建文件夹?

如何解决如何在 Windows 中的给定用户下创建文件夹?

如何在给定用户下使用 C 程序在 Windows 中创建文件/文件夹?

例如,如果我必须在桌面“C:\Users(user)\Desktop”中做一些事情

我在 C 中使用系统调用,所以我必须用用户替换实际用户名,我该怎么做?

int b = 1; char mkdir[33] = "MKDIR Desktop\\"; sprintf(mkdir,"MKDIR Desktop\\%i",b); system(mkdir);

但是不是在桌面上创建文件,而是在当前目录中继续创建一个名为桌面的文件

解决方法

如果我必须转到 C 中的一个用户中的目录,我该怎么做?

C 语言标准(阅读 Modern C 然后例如 n2126)不知道目录,因此您需要使用一些特定于操作系统的 API。另请参阅 this C reference 网站。

对于 Linux(或 POSIX),阅读 Advanced Linux Programming 然后关于 syscalls(2) 并使用 mkdir(2)

对于 Windows,请阅读有关 Windows APIdirectory management 的更多信息。

您可以将 system 与某些特定于操作系统的 MKDIR 命令一起使用,但这效率较低(并且您仍然需要处理失败)。

从现有的开源代码中汲取灵感。

(例如 GNU findutils

您可以使用跨平台的开源库,例如 GTKGlib

   sprintf(mkdir,"MKDIR Desktop\\%i",b); 

您使用 sprintf 是危险的,因为潜在的 buffer overflow。考虑使用 snprintf

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。