c_cpp C ++片段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp C ++片段相关的知识,希望对你有一定的参考价值。

# check directory empty
#include <dirent.h>
#include <boost::filesystem.hpp>
#include <string>

bool IsEmpty(const std::string& path) {
  int n = 0;
  struct dirent *d;
  DIR *dir = opendir(path);
  if (dir == NULL) //Not a directory or doesn't exist
    return false;
  
  while ((d = readdir(dir)) != NULL) {
    if (++n > 2)
      break;
  }
  closedir(dir);
  if (n <= 2) //Directory Empty
    return true;
  else
    return false;
}


bool IsEmpty(const std::string& path) {
  if (!boost::filesystem::is_directory(path)) { return false; }
  
  boost::filesystem::directory_iterator end_it;
  boost::filesystem::directory_iterator it(path);
  if(it == end_it)
    return false;
  else
    return true;
}
# check file exist
#include <sys/stat.h>
#include <unistd.h>
#include <boost/filesystem.hpp>
#include <string.h>

bool IsExist(const std::string& path) {
  struct stat statbuf;
  if (stat(path.c_str(), statbuf) != -1) {
    if (S_ISDIR(statbuf.st_mode)) {
      return true; // is directory
    } else {
      return false; // is file
    }
  } else {
    return false;
  }
}


bool IsExist(const std::string& path) {
  if (access(path.c_str(), 0) != -1) { return true; }
  return false;
}


bool IsExist(const std::string& path) {
  ifstream f(path.c_str());
  return f.good();
}


bool IsExist(const string& path) {
  if (boost::filesystem::exists(path)) { return true; }
  return false;
}

以上是关于c_cpp C ++片段的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp C ++片段

c_cpp C ++片段

c_cpp C片段将十进制转换为二进制

c_cpp 公共片段

c_cpp 最后的片段

c_cpp Codeforces片段