/ Published in: C++
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include <stdio.h> //FILE, fopen(), fclose() #include <sys/stat.h> //stat, stat() #include <string> //string #include <fstream> //fstream #include <iostream> //cout using namespace std; bool OpenCFileExists(const char* filename) { FILE* fp = NULL; //this will fail if more capabilities to read the //contents of the file is required (e.g. \private\...) fp = fopen(filename, "r"); if(fp != NULL) { fclose(fp); return true; } fclose(fp); return false; } bool OpenCppFileExists(const string& filename) { fstream fin; //this will fail if more capabilities to read the //contents of the file is required (e.g. \private\...) fin.open(filename.c_str(), ios::in); if(fin.is_open()) { fin.close(); return true; } fin.close(); return false; } bool FileExists(const char* filename) { struct stat info; int ret = -1; //get the file attributes ret = stat(filename, &info); if(ret == 0) { //stat() is able to get the file attributes, //so the file obviously exists return true; } else { //stat() is not able to get the file attributes, //so the file obviously does not exist or //more capabilities is required return false; } } bool FileExists(const string& filename) { return FileExists(filename.c_str()); } //the simple test program for above functions int main() { string filename; cout << "Enter the filename (empty line quit):" << endl; cout << ">"; while(getline(cin, filename)) { string result; if(filename.size() == 0) break; OpenCFileExists(filename.c_str()) ? result = " found!" : result = " not found!"; cout << "OpenCFileExists: " << filename << result << endl; OpenCppFileExists(filename) ? result = " found!" : result = " not found!"; cout << "OpenCppFileExists: " << filename << result << endl; FileExists(filename) ? result = " found!" : result = " not found!"; cout << "FileExists: " << filename << result << endl; cout << ">"; } return 0; }
URL: http://www.developer.nokia.com/Community/Wiki/CS001101_-_Checking_if_a_file_exists_in_C_and_C%2B%2B