【お知らせ】この部分は英語原文のみでの提供となります。何卒ご了承ください。
2.2.5.1.9 file::Open
Contents
Description
Open a file returning FALSE or 0 on failure and TRUE or a non-zero on success.
Syntax
BOOL Open( LPCTSTR lpszFileName, UINT nOpenFlags )
Parameters
- lpszFileName
- [input] A string containing an absolute or relative path to the desired file.
- nOpenFlags
- [input] Specifies the share and access modes of the opened file. See the default File constructor for definitions of all supported modes. Modes can be combined using the bitwise OR operator "|". At least one access and one share mode should be specified.
Return
Returns FALSE or 0 if the file fails to open and returns TRUE or a non-zero if the file opens successfully.
Examples
EX1
void file_open_ex1() { file ff; //Get user file folder string strFile = GetAppPath() + "OriginC" + "\\test.txt"; //create a new write only file. BOOL bOK = ff.Open(strFile, file::modeCreate | file::modeWrite); int bb[4] = {1, 2, 3, 4}; ff.Write(bb, sizeof(bb)); ff.Close(); //open the file created previously and set it to read only file. bOK = ff.Open(strFile, file::modeRead | file::shareDenyWrite ); int aa; ff.Read(&aa, sizeof(aa)); //aa equals 1 now. printf("%d\n",aa); ff.Close(); }
EX2
//Get temp folder path. void file_open_ex2() { file ff; char sztemp[MAXFULLPATH]; DWORD cc = GetTempPath(MAXFULLPATH, sztemp); string str1, strFile; str1 = sztemp; strFile = str1 + "\\test.txt"; BOOL bOK = ff.Open(strFile, file::modeCreate | file::modeReadWrite | file::typeText); string str("ABC"); //Write text type "ABC" to test.txt ff.Write(str.GetBuffer(0), 3); str.ReleaseBuffer(); ff.Close(); }
EX3
//This console program is used to copy files. int file_open_ex3() { char sztemp[MAXFULLPATH]; //Get temp folder path DWORD aa = GetTempPath(MAXFULLPATH, sztemp); string str1, strFile, strFile2; str1 = sztemp; strFile = str1 + "\\test.txt"; strFile2 = str1 + "\\dest.txt"; // constructing these file objects doesn't open them file sourceFile; file destFile; // open the source file for reading bool bOK = sourceFile.Open(strFile, file::modeCreate | file::modeNoTruncate | file::modeRead | file::shareDenyWrite); if(!bOK) { out_str("failed to open the source file"); return 0; } // open the destination file for writing bOK = destFile.Open(strFile2, file::modeWrite | file::shareExclusive | file::modeCreate); if(!bOK) { out_str("failed to open the destination file"); return 0; } BYTE buffer[196]; DWORD dwRead; // Read in 196-byte blocks. Remember how many bytes were actually read, and try to // write that many out. This loop ends when there are no more bytes to read. do { dwRead = sourceFile.Read(buffer, 196); destFile.Write(buffer, dwRead); } while (dwRead > 0); // Close both files destFile.Close(); sourceFile.Close(); return 1; }
Remark
A safe method of opening a file when failure is a likely outcome. The Open member function should be called after the default File constructor has been invoked. It is a safe method of opening a file because it returns FALSE or 0 on failure instead of throwing an exception. When a file is opened the current pointer position is initialized to 0.
See Also
Header to Include
origin.h