Revision: 52039
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at October 11, 2011 23:04 by StraightforAward
Initial Code
#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;
}
Initial URL
http://www.developer.nokia.com/Community/Wiki/CS001101_-_Checking_if_a_file_exists_in_C_and_C%2B%2B
Initial Description
Initial Title
Check if a file exists
Initial Tags
file, path
Initial Language
C++