Opening Files
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at Opening Files.
In MFC, the most common way to open a file is a two-stage process.
To open a file
Create the file object without specifying a path or permission flags.
You usually create a file object by declaring a CFile variable on the stack frame.
Call the Open member function for the file object, supplying a path and permission flags.
The return value for
Open
will be nonzero if the file was opened successfully or 0 if the specified file could not be opened. TheOpen
member function is prototyped as follows:virtual BOOL Open( LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL );
The open flags specify which permissions, such as read-only, you want for the file. The possible flag values are defined as enumerated constants within the
CFile
class, so they are qualified with "CFile::
" as inCFile::modeRead
. Use theCFile::modeCreate
flag if you want to create the file.
The following example shows how to create a new file with read/write permission (replacing any previous file with the same path):
TCHAR* pszFileName = _T("c:\\test\\myfile.dat");
CFile myFile;
CFileException fileException;
if ( !myFile.Open( pszFileName, CFile::modeCreate |
CFile::modeReadWrite, &fileException ) )
{
TRACE( _T("Can't open file %s, error = %u\n"),
pszFileName, fileException.m_cause );
}
Note
This example creates and opens a file. If there are problems, the Open
call can return a CFileException
object in its last parameter, as shown here. The TRACE
macro prints both the file name and a code indicating the reason for failure. You can call the AfxThrowFileException
function if you require more detailed error reporting.