windows編程中文件操作有以下幾種常見方法:
1.C語言中文件操作。
2.C++語言中的文件操作。
3.Win32 API函數文件操作。
4.MFC CFile類文件操作。
5.MFC CFileDialog類的文件操作。
6.注冊表文件操作。
下面我來詳細說明一下各種文件操作方法:
1. C語言中文件操作.需要包含的頭文件STDIO.H
- 寫入文件:
- FILE *pfile=fopen("C.txt","w");//以寫的方式打開C.txt文件。
- fwrite("Welcome to VCFans!",1,strlen("Welcome to VCFans!"),pfile);//將數據寫入文件。
- fflush(pfile);//刷新緩沖區。將緩沖區數據寫入文件
- fclose(pfile);//關閉文件
- 讀取文件:
- FILE *pfile=fopen("C.txt","r");//以讀的方式打開C.txt文件。
- char FileContent[100];
- memset(FileContent,0,100);//初始化FileContent
- fread(FileContent,1,100,pfile);//將剛才C.txt文件中的內容讀入到FileContent
- MessageBox(FileContent);//輸出結果
- fclose(pfile);//關閉文件
#include <stdio.h>
#include <afx.h>
void main()
{
LPCTSTR lp = "hello";
short s = 70;
long l = 200;
double d = 20.5;
char buf[200];
sprintf(buf, "%s %d %d %f\n", lp, s, l, d);
FILE *fp;
fp = fopen("c:\\ais1.txt", "wt");
fprintf(fp, "%s", buf);
fclose(fp);
}
2.C++語言中的文件操作。需要包含的頭文件fstream.h
C++代碼
- 寫入文件:
- ofstream ofs("C++.txt");//建立ofstream對像。
- ofs.write("Welcome to VCFans!",strlen("Welcome to VCFans!"));//將數據寫入文件
- ofs.close();//關閉ofstream對象。
- 讀取文件:
- ifstream ifs("C++.txt");
- char FileContent[100];
- memset(FileContent,0,100);//初始化FileContent
- ifs.read(FileContent,100);//讀取數據
- ifs.close();//關閉ifstream對像
- MessageBox(FileContent);//輸出結果
3.Win32 API函數文件操作。需要包含的頭文件winbase.h,需要類庫:kernel32.lib
C++代碼
- 寫入文件:
- HANDLE hFile;//定義一個句柄。
- hFile=CreateFile("API.txt",
- GENERIC_WRITE,
- FILE_SHARE_WRITE,
- NULL,
- CREATE_NEW,
- FILE_ATTRIBUTE_NORMAL,
- NULL);//使用CreatFile這個API函數打開文件
- 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);//使用CreatFile這個API函數打開文件
- DWORD dwDataLen;
- char FileContent[100];
- ReadFile(hFile,FileContent,100,&dwDataLen,NULL);//讀取數據
- FileContent[dwDataLen]=0;//將數組未尾設零。
- CloseHandle(hFile);//關閉句柄
- MessageBox(FileContent);//輸出結果
4.MFC CFile類文件操作。需要包含的頭文件afx.h
C++代碼
- 寫入文件:
- CFile file("CFile.txt",CFile::modeCreate| CFile::modeWrite);//構造CFile對象
- file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));//寫入數據到文件
- file.Close();//關閉CFile對象。
- 讀取文件:
- CFile file("CFile.txt",CFile::modeRead);//構造CFile對象
- char FileContent[100];
- memset(FileContent,0,100);//初始化FileContent
- file.Read(FileContent,100);//讀入數據
- file.Close();//關閉文件對象
- MessageBox(FileContent);//輸出數據
5.MFC CFileDialog類的文件操作。需要包含的頭文件Afxdlgs.h
C++代碼
- 寫入文件:
- CFileDialog fileDlg(FALSE,"txt","CFileDialog.txt");//建立CFileDialog對象
- if(IDOK==fileDlg.DoModal())
- {
- CFile file(fileDlg.GetFileName(),CFile::modeCreate| CFile::modeWrite);//構造CFile對象
- file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));//寫入數據到文件
- file.Close();
- };
- 讀取文件:
- CFileDialog fileDlg(TRUE,"txt","CFileDialog.txt");//建立CFileDialog對象
- if(IDOK==fileDlg.DoModal())
- {
- CFile file(fileDlg.GetFileName(),CFile::modeRead);//構造CFile對象
- char FileContent[100];
- memset(FileContent,0,100);//初始化FileContent
- file.Read(FileContent,100);//讀入數據
- file.Close();//關閉文件對象
- MessageBox(FileContent);
- };
6.注冊表文件操作。
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);//關閉注冊表鍵
- 讀注冊表:
- 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);