如何在 C++ 中的给定路径中创建目录?

How do I create a directory in a given path in C++?

我需要创建一个在当前位置的子目录中创建目录的函数。这是我尝试过的:

#include <iostream>
#include <cstring>
#include <dir.h>
#include <stdlib.h>
using namespace std;

void create(){
    char nume[50];
    int directory1,directory2;
    directory1=mkdir("folder1");
    directory2=mkdir("/folder1/ name1");
}

int main()
{
    create();
}

当我 运行 这段代码时,确实创建了“folder1”目录,但“name1”没有。我究竟做错了什么?我也试过这样做:

#include <iostream>
#include <cstring>
#include <dir.h>
#include <stdlib.h>
using namespace std;

void create(){
    char nume[50];
    system("mkdir folder1");
    system("mkdir /folder1/name1");
}

int main()
{
    create();
}

但我收到“命令的语法不正确”消息。

我建议使用从 C++17 开始可用的 <filesystem> 库,在本例中使用 std::filesystem::create_directories

#include <filesystem>

void create()
{
    std::filesystem::path subfolder = "/folder1/name1";
    std::filesystem::create_directories(subfolder);
}

int main()
{
    create();
}

请注意,create_directory 假定所有父目录都存在,否则 create_directories 将在缺少时创建中间目录。