CFile::Open

virtual BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL);

返回值:
如果成功打开,则返回非零值,否则为0。pError参数仅在返回0时才有意义。

参数:
lpszFileName待打开文件的路径,路径可为绝对、相对或网络名(UNC)。
nOpenFlags一个定义了文件的共享和访问模式的UINT。它指定了打开文件后的动作,可以用OR(|)操作符将选项组合起来,至少应有一个访问权限和一个共享选项,modeCreate和modeNoInherit模式是可选的。可参阅CFile 构造函数中模式选项的列表。
pError指向一个存在的文件异常对象,获取失败操作的状态。

说明:
Open是设计来和缺省CFile构造函数共同使用的。这两个函数形成一个安全方式打开文件,此时失败是通常的、可预料的情况。
CFile构造函数会在出错时产生一个异常,Open在出错时返回FALSE。Open也可以初始化一个CFileException对象来描述一个错误,但是如果你不提供pError参数或将NULL传递给pError,Open将返回FALSE而不产生一个CFileException。如果传递一个指针到一个存在的CFileException,Open会遇到错误,函数将用出错信息描述填充它。两种情况下Open都不产生异常。
下表描述了Open的可能结果:
pError
是否是遇到错误?
返回值
CFileException内容
NULL
No
TRUE
n/a
ptr 指向CFileException
No
TRUE
不变
NULL
Yes
FALSE
n/a
ptr 指向CFileException
Yes
FALSE
被初始化,用来描述错误


示例:
// example for CFile::Open
CFile f;
CFileException e;
char* pFileName = "test.dat";
if(!f.Open(pFileName, CFile::modeCreate | CFile::modeWrite,&e))
{
  #ifdef _DEBUG
     afxDump<<"File could not be opened"<<e.m_cause<<"\n";
  #endif
}

请参阅:CFile::CFile, CFile::Close