Accessing File Status

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

  1. Use the CFile 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;
TCHAR* szFileName = _T("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.

See also

Files