如何在 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
将在缺少时创建中间目录。
我需要创建一个在当前位置的子目录中创建目录的函数。这是我尝试过的:
#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
将在缺少时创建中间目录。