在CSDN看到一篇关于总结Windows编程中的各中文件操作方法。作者只是列了一个大纲,本人那将篇文章补充一下,贴出来希望能给有这方面需要的朋友帮助。
windows编程中文件操作有以下几种常见方法:
1.C语言中文件操作。
2.C++语言中的文件操作。
3.Win32 API函数文件操作。
4.MFC CFile类文件操作。
5.MFC CFileDialog类的文件操作。
6.注册表文件操作。
下面我来详细说明一下各种文件操作方法:
1. C语言中文件操作.需要包含的头文件STDIO.H
C++代码
- 写入文件:
- 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++语言中的文件操作。需要包含的头文件fstream.h
C++代码
- 写入文件:
- 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函数文件操作。需要包含的头文件winbase.h,需要类库:kernel32.lib
C++代码
- 写入文件:
- 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++代码
- 写入文件:
- 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++代码
- 写入文件:
- 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++代码
- 写入注册表:
- 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);
//以上代码在VC6.0,Windows 2K server下编译通过。