如何制作文件夹/目录

时间:2012-03-29 06:40:16

标签: 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();
}

1 个答案:

答案 0 :(得分:13)

您需要#include <string>std::string运算符在该标头中定义。

表达式newFolder + dir[i]的结果是std::string,而mkdir()的结果是const char*。改为:

mkdir((newFolder + dir[i]).c_str());

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

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

for (int i = 0; i<=5; i++){
    mkdir(newFolder + dir[i]);

5中有dir个元素,因此合法索引从04。改为:

for (int i = 0; i<5; i++){
    mkdir(newFolder + dir[i]);

std::string用于newFolder,而不是char[20]

std::string newFolder;

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