【问题标题】:How can I create folder under a given user in Windows?如何在 Windows 中的给定用户下创建文件夹?
【发布时间】:2020-12-30 17:49:28
【问题描述】:

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

例如,如果我必须在桌面“C:\Users(user)\Desktop”中制作一些东西

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

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

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

【问题讨论】:

标签: c filesystems


【解决方案1】:

如果我必须转到 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); 

由于潜在的buffer overflow,您对sprintf 的使用很危险。考虑使用snprintf

【讨论】:

    猜你喜欢
    • 2017-05-29
    • 2015-01-11
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    相关资源
    最近更新 更多