简介
- 判断文件/路径是否存在
- 新建文件/路径
代码
#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>
bool isDirExist(const std::string& path_name)
{
if (boost::filesystem::exists(path_name) && boost::filesystem::is_directory(path_name))
{
return true;
}
return false;
}
bool createNewDir(const std::string& path_name)
{
if (isDirExist(path_name))
{
return true;
}
return boost::filesystem::create_directories(path_name);
}
bool isFileExist(const std::string& file_name)
{
if (boost::filesystem::exists(file_name) && boost::filesystem::is_regular_file(file_name))
{
return true;
}
return false;
}
bool createNewFile(const std::string& file_name)
{
if (isFileExist(file_name))
{
return true;
}
boost::filesystem::ofstream file(file_name);
file.close();
return isFileExist(file_name);
}
笔记
-
由于
boost::filesystem::exists(test_dir)
该函数不区分文件夹还是文件,因此区分需要配合另外函数 -
路径是否存在:
boost::filesystem::exists(path_name)
+boost::filesystem::is_directory(path_name)
-
文件是否存在:
boost::filesystem::exists(file_name)
+boost::filesystem::is_regular_file(file_name)
-
创建目录:
create_directories
: 可以创建多级目录 -
创建文件:
boost::filesystem::ofstream
: 不能创建不存在目录下的文件
参考
- How to create a Folder in c++
- [b参考
- oost filesystem library
- C/C++ 中判断某一文件或目录是否存在
- 利用boost遍历路径下所有文件,并判断文件是否是文件夹
- 使用boost.filesystem检查文件是否存在的正确方式