gpt4 book ai didi

C++17 根据文件路径自动创建目录

转载 作者:行者123 更新时间:2023-12-04 18:38:36 25 4
gpt4 key购买 nike

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
ofstream fo("output/folder1/data/today/log.txt");
fo << "Hello world\n";
fo.close();

return 0;
}

我需要输出一些日志数据到一些变量名的文件中。但是,ofstream 不会在途中创建目录,如果文件路径不存在,ofstream 将写入任何地方!

如何沿着文件路径自动创建文件夹?系统只有 Ubuntu。

最佳答案

你可以使用这个函数:

bool CreateDirectoryRecuresive(const std::string & dirName)
{
std::error_code err;
if (!std::experimental::filesystem::create_directories(dirName, err))
{
if (std::experimental::filesystem::exists(dirName))
{
return true; // the folder probably already existed
}

printf("CreateDirectoryRecuresive: FAILED to create [%s], err:%s\n", dirName.c_str(), err.message().c_str());
return false;
}
return true;
}

(如果您有足够新的标准库,您可以删除experimental部分)。

代码中使用的方法的文档:

  1. std::filesystem::create_directories .
  2. std::filesystem::exists .

关于C++17 根据文件路径自动创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71658440/

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