#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; } }