zoukankan      html  css  js  c++  java
  • 在C++ 中检查一个文件是否存在的几种方法

    #include <iostream>
    #include <string>
    #include <fstream>
    #include <filesystem>
    using namespace std;
    
    //C++11之前
    bool FileExist1(const string &filename)
    {
      ifstream f(filename.c_str());
      return f.good();//检测流的状态是否正常。当错误的状态flags (eofbit, failbit and badbit) 都没被设置的时候返回true
    }
    
    //C风格写法
    bool FileExist2(const string &filename)
    {
      //以只读方式打开文件
      FILE *p_file = fopen(filename.c_str(), "r");
      if (p_file)
      {
        fclose(p_file);
        return true;
      }
      else
      {
        return false;
      }
    }
    
    //C++11
    bool FileExist3(const string &filename)
    {
      return std::experimental::filesystem::exists(filename);
    }
    
    //C++17,如果编译不过,需要在项目属性,C/C++->语言->检查语言标准中设置C++17以上
    bool FileExist4(const string &filename)
    {
      return std::filesystem::exists(filename);
    }
    
    int main()
    {
      string filename = "FileExist.cpp";
      //bool ret = FileExist1(filename);
      //bool ret = FileExist2(filename);
      //bool ret = FileExist3(filename);
      bool ret = FileExist4(filename);
      if (ret)
      {
        cout << "文件存在" << endl;
      }
      else
      {
        cout << "文件不存在" << endl;
      }
    }

     

  • 相关阅读:
    iOS进阶_三方使用步骤
    Runtime
    感想
    git
    随笔感想
    关于APP上架问题需要ipad图标的问题
    ubuntu安装
    JNI和NDK
    数据结构——队列链表实现
    数据结构——栈的实现(数组、Java)
  • 原文地址:https://www.cnblogs.com/LuckCoder/p/11413381.html
Copyright © 2011-2022 走看看