簡體   English   中英

在C中創建目錄,Linux不創建子目錄(目錄樹)-為什么?

[英]Make dir in C, linux doesnt create sub-dirs (dir tree) - why?

我想在Linux上的C中創建一個目錄樹。 我寫了這段代碼:

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

static int dirExists(const char *path)
{
    struct stat info;

    if(stat( path, &info ) != 0)
        return 0;
    else if(info.st_mode & S_IFDIR)
        return 1;
    else
        return 0;
}

int main(int argc, char **argv)
{
    const char *path = "./mydir/firstdir/";

    if(!dirExists(path))
    {
        mode_t mask = umask(0);
        if(mkdir(path, S_IRWXU | S_IRWXG | S_IRWXO) == -1)
            exit(-1);
        umask(mask);
    }

    printf("%d\n", dirExists(path));
    return 0;
}

好的,當path是單個目錄時,可以說path = "./mydir"但是當我想創建目錄樹時,例如: path = "./mydir/a/b/c/d/" dirs沒有創建。 為什么?

您沒有用於創建目錄樹的代碼,因此您的代碼不會創建目錄樹。 如果要創建目錄樹,請編寫代碼以執行此操作。

您要做的是創建一個路徑為path的文件夾

您需要定義能夠創建目錄樹的代碼。 換句話說,Mkdir不會遞歸創建目錄。

編輯:在您發布的鏈接中,父目錄已經存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM