【问题标题】:How can I create directory tree in C?如何在 C 中创建目录树?
【发布时间】:2023-03-14 07:50:02
【问题描述】:

我想要一种在 C 中创建多个目录的简单方法。

例如我想在以下位置创建目录:

/a/b/c

但如果目录不存在,我希望它们自动创建。我该怎么做?

【问题讨论】:

  • 创建 a,然后创建 a/b,然后创建 a/b/c。你需要为此编写一些代码,没有简单的方法。
  • 提示:使用strtok将路径分解为“a”、“b”和“c”,然后使用strcpystrcat依次创建“/a”、“/ a/b" 和 "a/b/c" 并使用mkdir 创建单独的目录。
  • system("mkdir -p /one/two/three"); /* assuming you can write on / */
  • 请阅读man 1 mkdir 了解如何从您的 C 代码中创建目录

标签: c directory tree directory-tree


【解决方案1】:

这是一个小C程序,用于在当前目录中创建目录树a/b/c

#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <errno.h>

int create_dir(char *name)
{
    int rc;

    rc = mkdir(name, S_IRWXU);
    if (rc != 0 && errno != EEXIST) 
    {
        perror("mkdir");
        exit(1);
    }
    if (rc != 0 && errno == EEXIST)
        printf("%s already exists.\n", name);

    return 0;
}

int main(int argc, char **argv)
{

    create_dir("a");
    create_dir("a/b");
    create_dir("a/b/c");

    exit(0);
}

【讨论】:

    猜你喜欢
    • 2010-10-15
    • 2013-08-16
    • 1970-01-01
    • 2012-02-14
    • 2014-08-27
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多