如果我不能假设通往该路径的目录尚不存在,那么在给定路径中用C ++创建新文件的最佳方法是什么呢。
例如,我想创建文件I:\Documents\Directory\SubDir\SubSubDir\MyFile.txt
,但目录SubDir
和SubSubDir
尚未存在。因此我必须事先创建它们。
为此,我可以使用库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;
}
}
答案 0 :(得分:4)