windows编程中文件操作有以下几种常见方法:
1.C语言中文件操作。
2.C++语言中的文件操作。
3.Win32 API函数文件操作。
4.MFC CFile类文件操作。
5.MFC CFileDialog类的文件操作。
6.注册表文件操作。

下面我来详细说明一下各种文件操作方法:
1. C语言中文件操作.需要包含的头文件STDIO.H
  

  1. 写入文件:
  2. FILE *pfile=fopen("C.txt","w");//以写的方式打开C.txt文件。
  3. fwrite("Welcome to VCFans!",1,strlen("Welcome to VCFans!"),pfile);//将数据写入文件。
  4. fflush(pfile);//刷新缓冲区。将缓冲区数据写入文件
  5. fclose(pfile);//关闭文件
  6.   读取文件:
  7. FILE *pfile=fopen("C.txt","r");//以读的方式打开C.txt文件。
  8. char FileContent[100];
  9. memset(FileContent,0,100);//初始化FileContent
  10. fread(FileContent,1,100,pfile);//将刚才C.txt文件中的内容读入到FileContent
  11. MessageBox(FileContent);//输出结果
  12. 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++代码
  1. 写入文件:
  2.     ofstream ofs("C++.txt");//建立ofstream对像。
  3. ofs.write("Welcome to VCFans!",strlen("Welcome to VCFans!"));//将数据写入文件
  4. ofs.close();//关闭ofstream对象。
  5.   读取文件:
  6. ifstream ifs("C++.txt");
  7. char FileContent[100];
  8. memset(FileContent,0,100);//初始化FileContent
  9. ifs.read(FileContent,100);//读取数据
  10. ifs.close();//关闭ifstream对像
  11. MessageBox(FileContent);//输出结果

3.Win32 API函数文件操作。需要包含的头文件winbase.h,需要类库:kernel32.lib
  

C++代码
  1. 写入文件:
  2. HANDLE hFile;//定义一个句柄。
  3. hFile=CreateFile("API.txt",
  4. GENERIC_WRITE,
  5. FILE_SHARE_WRITE,
  6. NULL,
  7. CREATE_NEW,
  8. FILE_ATTRIBUTE_NORMAL,
  9. NULL);//使用CreatFile这个API函数打开文件
  10. DWORD Written;
  11. WriteFile(hFile,"Welcome to VCFans!",strlen("Welcome to VCFans!"),&Written,NULL);//写入文件
  12. CloseHandle(hFile);//关闭句柄
  13.   读取文件:
  14. HANDLE hFile;//定义一个句柄。
  15. hFile=CreateFile("API.txt",
  16. GENERIC_READ,
  17. FILE_SHARE_READ,
  18. NULL,
  19. OPEN_EXISTING,
  20. FILE_ATTRIBUTE_NORMAL,
  21. NULL);//使用CreatFile这个API函数打开文件
  22. DWORD dwDataLen;
  23. char FileContent[100];
  24. ReadFile(hFile,FileContent,100,&dwDataLen,NULL);//读取数据
  25. FileContent[dwDataLen]=0;//将数组未尾设零。
  26. CloseHandle(hFile);//关闭句柄
  27. MessageBox(FileContent);//输出结果

4.MFC CFile类文件操作。需要包含的头文件afx.h

C++代码
  1. 写入文件:
  2. CFile file("CFile.txt",CFile::modeCreate| CFile::modeWrite);//构造CFile对象
  3. file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));//写入数据到文件
  4. file.Close();//关闭CFile对象。
  5. 读取文件:
  6. CFile file("CFile.txt",CFile::modeRead);//构造CFile对象
  7. char FileContent[100];
  8. memset(FileContent,0,100);//初始化FileContent
  9. file.Read(FileContent,100);//读入数据
  10. file.Close();//关闭文件对象
  11. MessageBox(FileContent);//输出数据

5.MFC CFileDialog类的文件操作。需要包含的头文件Afxdlgs.h

C++代码
  1. 写入文件:
  2. CFileDialog fileDlg(FALSE,"txt","CFileDialog.txt");//建立CFileDialog对象
  3. if(IDOK==fileDlg.DoModal())
  4. {
  5. CFile file(fileDlg.GetFileName(),CFile::modeCreate| CFile::modeWrite);//构造CFile对象
  6. file.Write("Welcome to VCFans !",strlen("Welcome to VCFans !"));//写入数据到文件
  7. file.Close();
  8. };
  9. 读取文件:
  10. CFileDialog fileDlg(TRUE,"txt","CFileDialog.txt");//建立CFileDialog对象
  11. if(IDOK==fileDlg.DoModal())
  12. {
  13. CFile file(fileDlg.GetFileName(),CFile::modeRead);//构造CFile对象
  14. char FileContent[100];
  15. memset(FileContent,0,100);//初始化FileContent
  16. file.Read(FileContent,100);//读入数据
  17. file.Close();//关闭文件对象
  18. MessageBox(FileContent);
  19. };

6.注册表文件操作。
  

C++代码
  1.   写入注册表:
  2. HKEY hKey;
  3. DWORD dwSex=1;
  4. RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\vcfans\\reg",&hKey);//打开注册表键
  5. RegSetValueEx(hKey,"sex",0,REG_DWORD,(CONST BYTE*)&dwSex,4);//写入注册表数据
  6. RegCloseKey(hKey);//关闭注册表键
  7. 读注册表:
  8. HKEY hKey;
  9. RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\vcfans\\reg",&hKey);//打开注册表键
  10. DWORD dwType;
  11. DWORD dwValue;
  12. DWORD dwSex;
  13. RegQueryValueEx(hKey,"sex",0,&dwType,(LPBYTE)&dwSex,&dwValue);//查询注册表数据
  14. RegCloseKey(hKey);//关闭注册表键
  15. CString str;
  16. str.Format("sex=%d",dwSex);
  17. MessageBox(str);

Windows编程中各种操作文件的方法的更多相关文章

  1. C# winform编程中多线程操作控件方法

    private void Form1_Load(object sender, EventArgs e) { Thread newthread = new Thread(new ThreadStart( ...

  2. PHP中常用操作文件的方法

    文件夹的创建: mkdir系统函数,第一个参数是路径,第二个参数是权限,第三个参数是是否递归创建,默认权限是0777最大权限,在windows下没有所谓的权限,在linux下可以设置权限,如果目录存在 ...

  3. Windows编程中char*转LPCWSTR解决的方法总结

    Windows编程中常常涉及到的一个问题是字符串之间的转换,开发过程总是遇到编译器提示无法格式转换的问题.于是自己总结了几种解决的方法. 1.通过T2W转换宏 char* szStr = " ...

  4. Windows编程中UNICODE和_UNICODE定义问题

    Windows编程中UNICODE和_UNICODE定义问题 先转一篇文章: 初学Windows SDK编程时碰到过这个问题,相信很多初学Windows编程的人也都碰到过,后来慢慢搞明白些了,但有时别 ...

  5. 在Windows 10中禁用自动文件夹类型发现

    点击下载注册表文件:https://files.cnblogs.com/files/Music/win10_automatic_folder_type_discovery.zip 已知Windows ...

  6. 资源在windows编程中的应用----菜单

    资源在Windows编程中的应用 资源 加速键.位图.光标.对话框.菜单.字符串.工具条 1.菜单的创建 菜单由以下组成部分: (1)窗口主菜单条 (2)下拉式菜单框 (3)菜单项热键标识 (4)菜单 ...

  7. Java中创建操作文件和文件夹的工具类

    Java中创建操作文件和文件夹的工具类 FileUtils.java import java.io.BufferedInputStream; import java.io.BufferedOutput ...

  8. Windows编程中的若干难点 - Windows程序设计(SDK)007

    Windows编程中的若干难点 让编程改变世界 Change the world by program 一个窗口的生与死 我记得有童鞋会问:如果我的程序需要在关闭前让用户判断是否确定要关闭窗口,我应该 ...

  9. Windows 编程中恼人的各种字符以及字符指针类型

    在Windows编程中,很容易见到这些数据类型:LPSTR,LPTSTR,LPCTSTR... 像很多童鞋一样,当初在学Windows编程的时候,对着些数据类型真的是丈二和尚,摸不着头脑,长时间不用就 ...

随机推荐

  1. mysql:where和having的区别

    where在查询数据库结果返回之前对查询条件进行约束,就是结果返回之前起作用,而having是查询数据库,已经得到返回的结果了,再对结果进行过滤.(结果返回前,结果返回后) where条件不能使用聚合 ...

  2. jquery submit选择器 语法

    jquery submit选择器 语法 作用::submit 选择器选取类型为 submit 的 <button> 和 <input> 元素.如果 <button> ...

  3. java+Word图片上传控件

    这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用 后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下) ...

  4. PCI-CAN卡驱动与数据通信调试小记

    以前做项目,不注意记录调试过程中遇到的问题,以后应该注意这一点.今天抽空总结一下PCI-CAN卡驱动与数据通信调试过程中遇到的问题,方便以后回忆和思考. 1. 中断服务之字节流报文组包状态机 这是一个 ...

  5. Python3学习笔记(十八):文件上传和下载

    文件上传 以人人网上传头像为例,用Fiddler抓取的上传头像接口报文如下 上传头像图片代码: import requests upload_url = 'http://upload.renren.c ...

  6. 如何用Sha256进行简单的加密或者解密

    个人是今天第一次使用Sha256对数据进行加密操作,以往都是直接使用MD5加密最多也就是加盐之后再进行加密 不过可能是个人应用的只是简单的一个对数据的加密,所以感觉目前和MD5差距并不是很大. 1.首 ...

  7. TCP连接建立 之 同时打开

    假设两台设备双方均发送syn给对端,在发送syn之后状态处于SYN_SENT状态,此时双方均收到对端的发来的syn,则立即进入SYN_RECV状态,并且都向对端回复syn+ack,在收到syn+ack ...

  8. SpringBoot Thymeleaf 配置多个Template Locations

    @Configuration public class ThymeleafConfigration { @Bean public SpringResourceTemplateResolver firs ...

  9. laravel where orwhere的写法

    orWhere如果不用闭包的形式写很容易写成分开的查询条件 要写成一组查询条件需要这样闭包写(就相当于把这两个条件放在一个小括号里,是一组查询条件“(xxx or xxx)”): if (!empty ...

  10. Python将函数放入模块

    函数可以将通用的代码封装起来,便于其他程序或者方法调用.将函数存放在文件中,这个文件被称为模块.将函数存储在独立的模块中,可与其他程序员共享这些文件而不是整个程序. fun.py def say_hi ...