如何制作文件夹/目录

Cju*_*den 14 c++ directory

如何使用c ++创建目录/文件夹.我试过使用mkdir()但没有成功.我想编写一个cin是变量的程序,然后使用这个变量来创建子目录和文件.我目前的代码.它说mkdir()中的+运算符表示错误没有操作数

char newFolder[20];

cout << "Enter name of new project without spaces:\n";
cin >> newFolder;
string files[] = {"index.php"};
string dir[] = {"/images","/includes","/includes/js","/contact","about"};

for (int i = 0; i<=5; i++){
mkdir(newFolder + dir[i]);
ofstream write ("index/index.php");
write << "<?php \n \n \n ?>";
write.close();
}
Run Code Online (Sandbox Code Playgroud)

hmj*_*mjd 13

您需要#include <string>时,std::string运营商都在头文件中定义.

表达式的结果newFolder + dir[i]是a std::string,并且mkdir()需要a const char*.改成:

mkdir((newFolder + dir[i]).c_str());
Run Code Online (Sandbox Code Playgroud)

检查返回值mkdir()以确保成功,如果不使用则strerror(errno)获取失败的原因.

这访问超出了数组的末尾dir:

for (int i = 0; i<=5; i++){
    mkdir(newFolder + dir[i]);
Run Code Online (Sandbox Code Playgroud)

还有5的元素dir,所以法律索引是从04.改成:

for (int i = 0; i<5; i++){
    mkdir(newFolder + dir[i]);
Run Code Online (Sandbox Code Playgroud)

使用std::stringnewFolder,而不是char[20]:

std::string newFolder;
Run Code Online (Sandbox Code Playgroud)

然后,您不必担心输入超过19个字符(空终止符需要1个)的文件夹.