Accessing File Status

OverviewHow Do I

CFile also supports getting file status, including whether the file exists, creation and modification dates and times, logical size, and path.

To get file status

  • Use the class to get and set information about a file. One useful application is to use the CFile static member function GetStatus to determine if a file exists. GetStatus returns 0 if the specified file does not exist.

Thus, you could use the result of GetStatus to determine whether to use the CFile::modeCreate flag when opening a file, as shown by the following example:

CFile theFile;
char* szFileName = "c:\\test\\myfile.dat";
BOOL bOpenOK;

CFileStatus status;
if( CFile::GetStatus( szFileName, status ) )
{
    // Open the file without the Create flag
    bOpenOK = theFile.Open( szFileName,
                    CFile::modeWrite );
}
else
{
    // Open the file with the Create flag
    bOpenOK = theFile.Open( szFileName,
                    CFile::modeCreate | CFile::modeWrite );
}

For related information, see Serialization (Object Persistence).