Windows编程中各种操作文件的方法
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
- 写入文件:
- 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
- 写入文件:
- 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
- 写入文件:
- 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
- 写入文件:
- 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.注册表文件操作。
- 写入注册表:
- 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);
Windows编程中各种操作文件的方法的更多相关文章
- C# winform编程中多线程操作控件方法
private void Form1_Load(object sender, EventArgs e) { Thread newthread = new Thread(new ThreadStart( ...
- PHP中常用操作文件的方法
文件夹的创建: mkdir系统函数,第一个参数是路径,第二个参数是权限,第三个参数是是否递归创建,默认权限是0777最大权限,在windows下没有所谓的权限,在linux下可以设置权限,如果目录存在 ...
- Windows编程中char*转LPCWSTR解决的方法总结
Windows编程中常常涉及到的一个问题是字符串之间的转换,开发过程总是遇到编译器提示无法格式转换的问题.于是自己总结了几种解决的方法. 1.通过T2W转换宏 char* szStr = " ...
- Windows编程中UNICODE和_UNICODE定义问题
Windows编程中UNICODE和_UNICODE定义问题 先转一篇文章: 初学Windows SDK编程时碰到过这个问题,相信很多初学Windows编程的人也都碰到过,后来慢慢搞明白些了,但有时别 ...
- 在Windows 10中禁用自动文件夹类型发现
点击下载注册表文件:https://files.cnblogs.com/files/Music/win10_automatic_folder_type_discovery.zip 已知Windows ...
- 资源在windows编程中的应用----菜单
资源在Windows编程中的应用 资源 加速键.位图.光标.对话框.菜单.字符串.工具条 1.菜单的创建 菜单由以下组成部分: (1)窗口主菜单条 (2)下拉式菜单框 (3)菜单项热键标识 (4)菜单 ...
- Java中创建操作文件和文件夹的工具类
Java中创建操作文件和文件夹的工具类 FileUtils.java import java.io.BufferedInputStream; import java.io.BufferedOutput ...
- Windows编程中的若干难点 - Windows程序设计(SDK)007
Windows编程中的若干难点 让编程改变世界 Change the world by program 一个窗口的生与死 我记得有童鞋会问:如果我的程序需要在关闭前让用户判断是否确定要关闭窗口,我应该 ...
- Windows 编程中恼人的各种字符以及字符指针类型
在Windows编程中,很容易见到这些数据类型:LPSTR,LPTSTR,LPCTSTR... 像很多童鞋一样,当初在学Windows编程的时候,对着些数据类型真的是丈二和尚,摸不着头脑,长时间不用就 ...
随机推荐
- css百分比值到底参考谁?
一.元素宽高设置百分比 (1)width / min-width / max-width 参考块级父元素的宽度 (2)height / min-height / max-height 参考块级父元素的 ...
- codevs 2804 最大最小数质因数 x
题目描述 Description 先输入n,n<=20;再依次输入n个不同的数,每个数<=1000000;找出最大数和最小数,并输出最大最小数的质 ...
- [JOI2012春季合宿]Rotate (链表)
题意 题解 又是一道神仙题-- 显然的做法是大力splay,时间复杂度\(O((N+Q)N\log N)\), 可以卡掉. 正解: 使用十字链表维护矩阵,在周围增加第\(0\)行/列和第\((n+1) ...
- JavaWeb-SpringSecurity在数据库中查询登陆用户
系列博文 项目已上传至guthub 传送门 JavaWeb-SpringSecurity初认识 传送门 JavaWeb-SpringSecurity在数据库中查询登陆用户 传送门 JavaWeb-Sp ...
- 【知识库】-数据库_MySQL常用SQL语句语法大全示例
简书作者:seay 文章出处: 关系数据库常用SQL语句语法大全 Learn [已经过测试校验] 一.创建数据库 二.创建表 三.删除表 四.清空表 五.修改表 六.SQL查询语句 七.SQL插入语句 ...
- yum update 更新失败
1.yum安装东西的时候,老是报:There are unfinished transactions remaining. You might consider running yum-complet ...
- error while loading shared libraries: libXXXX.so: cannot open shared object file: No such file or directory
出现这个问题的原因是运行程序缺少依赖库,或者运行程序的依赖库缺少依赖库,可能你的本地目录下面就有这个库文件,但是linux搜索路劲不会从当前路径下去搜索:这种情况可能出现在切换环境上,可能你在一个li ...
- [题解] [bzoj2622] 深入虎穴
题解 题解 考虑到正着跑不好想, 我们尝试反向跑 以每个终点作为起点, 维护每个点的最小值和次小值(最小的被老虎ban掉了) 转移的时候用当前点的次小值去更新其所连的点的最小值和次小值 由于最小的次小 ...
- 关于MongoDB在windows下安装【解压版】
一.首先创建数据库存储文件夹和日志文件夹,在mongodb下创建即可,找起来也方便,日志文件:mongo.log,安装出错方便查阅问题: 二.启动MongoDB服务:注意:一定要用管理员身份运行DOS ...
- Jdbc中大文本类型的处理
Oracle中大文本数据类型, Clob 长文本类型 (MySQL中不支持,使用的是text) Blob 二进制类型 MySQL数据库, Text 长文本类型 Blob 二 ...