gpt4 book ai didi

c++ - C++中执行 “mkdir -p”的现代方法是什么?

转载 作者:行者123 更新时间:2023-12-02 09:48:23 26 4
gpt4 key购买 nike

C++ 17标准引入了<filesystem>库,该库提供了一些在文件系统,路径,文件和目录上执行操作的功能。为了创建一个新目录,可以使用
create_directory
但是,如果父目录不存在,则此功能将失败,因为它等效于不带标志的UNIX mkdir。除了要给定的参数之外,是否要创建所有父目录,都需要使用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());

最佳答案

您想要的是 std::filesystem::create_directories ,它将

Executes (1)[create_directory] for every element of p that does not already exist. If p already exists, the function does nothing (this condition is not treated as an error).

关于c++ - C++中执行 “mkdir -p”的现代方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62940054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com