使用循环c ++使用mkdir()函数创建多个文件夹

时间:2013-07-01 20:46:50

标签: c++ mkdir

我想通过命名myfolder1myfolder2的方式在目录中创建文件夹。我尝试使用mkdir()使用for loop函数执行它,但它不采用'整数变量'而只采用'const char values'。现在做什么?有没有其他功能可以做到这一点或mkdir()可以做到这一点?

2 个答案:

答案 0 :(得分:4)

我不知道任何带有你想要的整数的库调用。您需要做的是将数字嵌入到字符串中,然后再将其传递给mkdir()。既然你用'c ++'标记了这个问题,我已经演示了一种以C ++为导向的方法来实现这个目的。

#include <sstream>  // for std::ostringstream
#include <string>   // for std::string

const std::string baseFolderName = "myfolder";
for (int i = 1; i < 20; ++i)
{
    std::ostringstream folderName;
    folderName << baseFolderName << i;
    mode_t mode = 0; //TBD: whatever is appropriate
    mkdir(folderName.str().c_str(), mode);
}

答案 1 :(得分:0)

如果您真的想要这个,可以使用itoa(...)

让我们说

i = 20;
char buffer [33];
itoa (i,buffer,10);    //10 means decimal

现在buffer = "20\0"

转换完成后,您可以将buffer添加到默认字符串中。

所以,总而言之,你可以使用:

std::string str = "string";
char buffer[33] ;
itoa(20, buffer, 10);
str.append(buffer);
mkdir(str.c_str());