Fork me on GitHub

c++之判断文件和路径是否存在

简介

  • 判断文件/路径是否存在
  • 新建文件/路径

代码

#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: 不能创建不存在目录下的文件

参考

posted @ 2021-06-26 10:42  chrislzy  阅读(5835)  评论(0编辑  收藏  举报