有没有更好的方法从字符串创建目录? cpp,创建目录,stringstream,字符串。

Is there better way to create directory from string? cpp, create directory, stringstream, string.

我的代码可以正常工作,但我认为这样做很糟糕。 (使用 system() 存在安全问题,并且还创建字符串只是因为 ss.str() 不被接受)。你知道更好的方法吗?

    stringstream ss;
    string dir;

    // make dir output
    ss.str(""); // set  empty
    ss.clear(); // clear bit flags
    ss << "mkdir \"" << argv[2] << "\"";
    dir = ss.str();
    system(dir.c_str());

argv[2] 来自:int main (int argc, char *argv[]) {...

有什么更好的主意吗?

您应该使用提供该功能的便携式 Boost.Filesystem 库 create_directory or use the facilities your target environment provides, e.g. the POSIX function mkdir 对于 Linux。

Boost 还提供创建路径的功能,只需在参考资料中四处查找即可找到您需要的内容。

使用 system 命令是个坏主意。


如果您和您的教授使用的是 MSVC 2015 或 gcc5.3 或更新版本,您可能可以使用 C++1z 的实验性实现 create_directory。它基于 Boost,但 Boost 得到更广泛的支持。