CFile.Open()的使用说明
cfile:: open
virtual BOOL Open( LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL );
返回值:成功为非0,否则为0,仅当返回值为0时pError参数才有意义
参数:
lpszFileName 需要打开文件的路径字符串,这个路径可以是相对路径也可以是绝对路径,或者是网络名字(UNC)
nOpenFlags 一个UINT定义文件的存取共享模式。它指定文件打开时可以采取的操作。你可以使用”|"号来组合多个选项。文件的一个存取权限和一个共享选项是必须要指定的。而modeCreate 和modeNoInherit是可选的。
具体如下:
- CFile::modeCreate 让构造器创建一个新文件,如果那个文件已经存在,把那个文件的长度重设为0
- CFile::modeNoTruncate 可以同modeCreate. 一起用,如果要创建的文件已经存在,并不把它长度设置为0,因而这个文件获取或者作为一个新建文件或者作为一个已存在文件打开。这个功能往往很好用,比如说,当你需要打开一个设置文件,但是你并不清楚这个文件是否已经存在。
- CFile::modeRead 打开文件仅仅供读
- CFile::modeReadWrite 打开文件供读写
- CFile::modeWrite 打开文件只供写
- CFile::modeNoInherit 阻止这个文件被子进程继承
- CFile::shareDenyNone 打开这个文件同时允许其它进程读写这个文件。如果文件被其它进程以incompatibility模式打开,这是create操作会失败。
- CFile::shareDenyRead 打开文件拒绝其它任何进程读这个文件。如果文件被其它进程用compatibility模式或者是读方式打开,create操作失败。
- CFile::shareDenyWrite 打开文件拒绝其它任何进程写这个文件。如果文件被其它进程用compatibility模式或者是写方式打开,create操作失败。
- CFile::shareExclusive 以独占方式打开这个文件,不允许其它进程读写这个文件。 Construction fails if the file has been opened in any other mode for read or write access, even by the current process.
- CFile::shareCompat 这个标志在32位的MFC中无效。 This flag maps to CFile::shareExclusivewhen used in CFile::Open.
- CFile::typeText 设置成对回车换行对有特殊处理的文本模式(仅用在派生类中)
- CFile::typeBinary 设置二进制模式(仅用在派生类中)
pError-------一个指向一个已经存在的file-exception类的指针,它会接收文件失败操作的具体状态。注明:OPEN默认是用在CFILE的构造器中,这两个函数提供了一个对文件的安全访问方式,即使发生了错误也会正确的回报错误。