在CSDN看到一篇關(guān)于總結(jié)Windows編程中的各中文件操作方法。作者只是列了一個(gè)大綱,本人那將篇文章補(bǔ)充一下,貼出來(lái)希望能給有這方面需要的朋友幫助。
windows編程中文件操作有以下幾種常見(jiàn)方法:
1.C語(yǔ)言中文件操作。
2.C++語(yǔ)言中的文件操作。
3.Win32 API函數(shù)文件操作。
4.MFC CFile類文件操作。
5.MFC CFileDialog類的文件操作。
6.注冊(cè)表文件操作。
下面我來(lái)詳細(xì)說(shuō)明一下各種文件操作方法:
1. C語(yǔ)言中文件操作.需要包含的頭文件STDIO.H
C++代碼
- 寫(xiě)入文件:
- FILE *pfile=fopen("C.txt","w");
- fwrite("Welcome to VCFans!",1,strlen("Welcome to VCFans!"),pfile);
- fflush(pfile);
- fclose(pfile);
- 讀取文件:
- FILE *pfile=fopen("C.txt","r");
- char FileContent[100];
- memset(FileContent,0,100);
- fread(FileContent,1,100,pfile);
- MessageBox(FileContent);
- fclose(pfile);
2.C++語(yǔ)言中的文件操作。需要包含的頭文件fstream.h
C++代碼
- 寫(xiě)入文件:
- ofstream ofs("C++.txt");
- ofs.write("Welcome to VCFans!",strlen("Welcome to VCFans!"));
- ofs.close();
- 讀取文件:
- ifstream ifs("C++.txt");
- char FileContent[100];
- memset(FileContent,0,100);
- ifs.read(FileContent,100);
- ifs.close();
- MessageBox(FileContent);
3.Win32 API函數(shù)文件操作。需要包含的頭文件winbase.h,需要類庫(kù):kernel32.lib
C++代碼
- 寫(xiě)入文件:
- HANDLE hFile;
- hFile=CreateFile("API.txt",
- GENERIC_WRITE,
- FILE_SHARE_WRITE,
- NULL,
- CREATE_NEW,
- FILE_ATTRIBUTE_NORMAL,
- NULL);
- DWORD Written;
- WriteFile(hFile,"Welcome to VCFans!",strlen("Welcome to VCFans!"),&Written,NULL);
- CloseHandle(hFile);
- 讀取文件:
- HANDLE hFile;
- hFile=CreateFile("API.txt",
- GENERIC_READ,
- FILE_SHARE_READ,
- NULL,
- OPEN_EXISTING,
- FILE_ATTRIBUTE_NORMAL,
- NULL);
- DWORD dwDataLen;
- char FileContent[100];
- ReadFile(hFile,FileContent,100,&dwDataLen,NULL);
- FileContent[dwDataLen]=0;
- CloseHandle(hFile);
- MessageBox(FileContent);
4.MFC CFile類文件操作。需要包含的頭文件afx.h
C++代碼
- 寫(xiě)入文件:
- CFile file("CFile.txt",CFile::modeCreate| CFile::modeWrite);
- file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));
- file.Close();
- 讀取文件:
- CFile file("CFile.txt",CFile::modeRead);
- char FileContent[100];
- memset(FileContent,0,100);
- file.Read(FileContent,100);
- file.Close();
- MessageBox(FileContent);
5.MFC CFileDialog類的文件操作。需要包含的頭文件Afxdlgs.h
C++代碼
- 寫(xiě)入文件:
- CFileDialog fileDlg(FALSE,"txt","CFileDialog.txt");
- if(IDOK==fileDlg.DoModal())
- {
- CFile file(fileDlg.GetFileName(),CFile::modeCreate| CFile::modeWrite);
- file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));
- file.Close();
- };
- 讀取文件:
- CFileDialog fileDlg(TRUE,"txt","CFileDialog.txt");
- if(IDOK==fileDlg.DoModal())
- {
- CFile file(fileDlg.GetFileName(),CFile::modeRead);
- char FileContent[100];
- memset(FileContent,0,100);
- file.Read(FileContent,100);
- file.Close();
- MessageBox(FileContent);
- };
6.注冊(cè)表文件操作。
C++代碼
- 寫(xiě)入注冊(cè)表:
- HKEY hKey;
- DWORD dwSex=1;
- RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\vcfans\\reg",&hKey);
- RegSetValueEx(hKey,"sex",0,REG_DWORD,(CONST BYTE*)&dwSex,4);
- RegCloseKey(hKey);
- 讀注冊(cè)表:
- HKEY hKey;
- RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\vcfans\\reg",&hKey);
- DWORD dwType;
- DWORD dwValue;
- DWORD dwSex;
- RegQueryValueEx(hKey,"sex",0,&dwType,(LPBYTE)&dwSex,&dwValue);
- RegCloseKey(hKey);
- CString str;
- str.Format("sex=%d",dwSex);
- MessageBox(str);
//以上代碼在VC6.0,Windows 2K server下編譯通過(guò)。