C++17标准引入了
是否有另一种以C++风格同时创建整个目录集的方法?
有一个C风格的选项,可以通过
<filesystem>
库,该库提供了一些在文件系统、路径、文件和目录上执行操作的工具。要创建一个新目录,可以使用create_directory
。然而,如果父目录不存在,此函数将失败,因为它相当于没有标志的UNIX mkdir
。如果想要同时创建给定参数的所有父目录,可以使用带有-p
标志的mkdir
。但是C++17函数不提供添加标志的选项。是否有另一种以C++风格同时创建整个目录集的方法?
有一个C风格的选项,可以通过
<cstdlib>
来实现:std::system("mkdir -p NEW_DIRECTORY")
然而,如果提供的NEW_DIRECTORY
为string
,那么需要进行以下操作:
std::string mkdir_s = "mkdir -p "s + NEW_DIRECTORY;
std::system(mkdir_s.c_str());
create_directories()
可以实现您想要的功能。 - undefined