【发布时间】:2020-11-06 10:31:23
【问题描述】:
C++17 标准引入了<filesystem> 库,它提供了一些对文件系统、路径、文件和目录执行操作的工具。为了创建一个新目录,可以使用
create_directory.
但是,如果父目录不存在,这个函数就会失败,因为它相当于没有标志的UNIXmkdir。除了给定的参数之外,是否要创建所有父目录,运行mkdir 并带有标志-p。但是功能是C++17没有提供添加标志的选项。
还有其他方法可以同时以 C++ 风格创建整个目录集吗?
在<cstdlib>的帮助下有一个C风格的选项:
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()可以满足您的需求。
标签: c++ filesystems mkdir