是的nOpenFlags Sharing and access mode. Specifies the action to take when opening the file. You can combine options listed below by using the bitwise-OR (|) operator. One access permission and one share option are required; the modeCreate and modeNoInherit modes are optional. The values are as follows: CFile::modeCreate Directs the constructor to create a new file. If the file exists already, it is truncated to 0 length. CFile::modeNoTruncate Combine this value with modeCreate. If the file being created already exists, it is not truncated to 0 length. Furthermore, if the file being created already exists, the underlying file pointer will point to the beginning of the file. This flag guarantees the file to open, either as a newly created file or as an existing file. This might be useful, for example, when opening a settings file that may or may not exist already. This option applies to CStdioFile as well. CFile::modeRead Opens the file for reading only. CFile::modeReadWrite Opens the file for reading and writing. CFile::modeWrite Opens the file for writing only. CFile::modeNoInherit Prevents the file from being inherited by child processes. CFile::shareDenyNone Opens the file without denying other processes read or write access to the file. Create fails if the file has been opened in compatibility mode by any other process. CFile::shareDenyRead Opens the file and denies other processes read access to the file. Create fails if the file has been opened in compatibility mode or for read access by any other process. CFile::shareDenyWrite Opens the file and denies other processes write access to the file. Create fails if the file has been opened in compatibility mode or for write access by any other process. CFile::shareExclusive Opens the file with exclusive mode, denying other processes both read and write access to the file. Construction fails if the file has been opened in any other mode for read or write access, even by the current process. CFile::shareCompat This flag is not available in 32-bit and 64-bit MFC. This flag maps to CFile::shareExclusive when used in CFile::Open. CFile::typeText Sets text mode with special processing for carriage return–linefeed pairs (used in derived classes only). CFile::typeBinary Sets binary mode (used in derived classes only). CFile::osNoBuffer The system opens a file with no system caching. For more information see FILE_FLAG_NO_BUFFERING in CreateFile in the Windows SDK. CFile::osWriteThrough The system writes through any intermediate cache and goes directly to disk. For more information see FILE_FLAG_WRITE_THROUGH in CreateFile in the Windows SDK. CFile::osRandomAccess A file is accessed randomly. The system can use this as a hint to optimize file caching. CFile::osSequentialScan A file is accessed sequentially from beginning to end. The system can use this as a hint to optimize file caching. For more information see FILE_FLAG_SEQUENTIAL_SCAN in CreateFile in the Windows SDK.
Sharing and access mode. Specifies the action to take when opening the file. You can combine options listed below by using the bitwise-OR (|) operator. One access permission and one share option are required; the modeCreate and modeNoInherit modes are optional. The values are as follows: CFile::modeCreate Directs the constructor to create a new file. If the file exists already, it is truncated to 0 length. CFile::modeNoTruncate Combine this value with modeCreate. If the file being created already exists, it is not truncated to 0 length. Furthermore, if the file being created already exists, the underlying file pointer will point to the beginning of the file. This flag guarantees the file to open, either as a newly created file or as an existing file. This might be useful, for example, when opening a settings file that may or may not exist already. This option applies to CStdioFile as well. CFile::modeRead Opens the file for reading only. CFile::modeReadWrite Opens the file for reading and writing. CFile::modeWrite Opens the file for writing only. CFile::modeNoInherit Prevents the file from being inherited by child processes. CFile::shareDenyNone Opens the file without denying other processes read or write access to the file. Create fails if the file has been opened in compatibility mode by any other process. CFile::shareDenyRead Opens the file and denies other processes read access to the file. Create fails if the file has been opened in compatibility mode or for read access by any other process. CFile::shareDenyWrite Opens the file and denies other processes write access to the file. Create fails if the file has been opened in compatibility mode or for write access by any other process. CFile::shareExclusive Opens the file with exclusive mode, denying other processes both read and write access to the file. Construction fails if the file has been opened in any other mode for read or write access, even by the current process. CFile::shareCompat This flag is not available in 32-bit and 64-bit MFC. This flag maps to CFile::shareExclusive when used in CFile::Open. CFile::typeText Sets text mode with special processing for carriage return–linefeed pairs (used in derived classes only). CFile::typeBinary Sets binary mode (used in derived classes only). CFile::osNoBuffer The system opens a file with no system caching. For more information see FILE_FLAG_NO_BUFFERING in CreateFile in the Windows SDK. CFile::osWriteThrough The system writes through any intermediate cache and goes directly to disk. For more information see FILE_FLAG_WRITE_THROUGH in CreateFile in the Windows SDK. CFile::osRandomAccess A file is accessed randomly. The system can use this as a hint to optimize file caching. CFile::osSequentialScan A file is accessed sequentially from beginning to end. The system can use this as a hint to optimize file caching. For more information see FILE_FLAG_SEQUENTIAL_SCAN in CreateFile in the Windows SDK.
enum OpenFlags {
//第一(从右,下同)至第二位,打开文件时访问模式,读/写/读写
modeRead = 0x0000,
modeWrite = 0x0001,
modeReadWrite = 0x0002,
shareCompat = 0x0000, //32位MFC中没用
//第五到第七位,打开文件时的共享模式
shareExclusive = 0x0010,//独占方式,禁止其他进程读写
hareDenyWrite = 0x0020,//禁止其他进程写
shareDenyRead = 0x0030,//禁止其他进程读
shareDenyNone = 0x0040,//允许其他进程写
//第八位,打开文件时的文件继承方式
modeNoInherit = 0x0080,//不允许子进程继承
//第十三、十四位,是否创建新文件和创建方式
modeCreate = 0x1000,//创建新文件,文件长度0
modeNoTruncate = 0x2000,//创建新文件时如文件已存在则打开
//第十五、十六位,文件以二进制或者文本方式打开,在派生类CStdioFile中用
typeText = 0x4000,
typeBinary = (int)0x8000
};