在不存在的目录中创建文件的最佳方法

Best way to create file in non existing directory

本文关键字:文件 最佳 创建 方法 不存在      更新时间:2023-10-16

如果我不能假设通往该路径的目录还不存在,那么在给定路径中C++创建新文件的最佳方法是什么。

例如,我想创建文件I:DocumentsDirectorySubDirSubSubDirMyFile.txt,但目录SubDirSubSubDir还不存在。因此,我必须事先创建它们。

我被允许为此目的使用库boost::filesystem。boost::filesystem是否包含这样的函数?

编辑

在阅读了boost::filesystem文档后,我找到了相对简单的问题的答案。

#include <boost/filesystem.hpp>
#include <iostream>
int main(int argc, char** args) {
    try {
        boost::filesystem::path dirPath("I:\Documents\Directory\SubDir\SubSubDir\MyFile.txt");
        boost::filesystem::create_directories(dirPath.parent_path());
    }
    catch(const boost::filesystem::filesystem_error& err) {
        std::cerr << err.what() << std::endl;
    }
}

这一切都在文档中。

您可以始终安全地使用create_directory和/或create_directories

由于 [路径] 解析为现有目录而导致p创建失败不应被视为错误。