文件操作

1、win32 api操作文件

#include<windows.h>
#include "iostream"
using namespace std;

// 复制文件
void copyfuc(char *srcFile,char *destFile)
{
	HANDLE hsrcFile=CreateFile(srcFile, GENERIC_READ, 0, NULL, OPEN_ALWAYS, 0, NULL);//创建或者打开源文件
	HANDLE hDestFile=CreateFile(destFile, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);// 创建或者打开目标文件
	if( hsrcFile == INVALID_HANDLE_VALUE || hDestFile == INVALID_HANDLE_VALUE)//打开或者创建文件失败,则返回错误信息
	{
		cout<<"无法复制文件!"<<endl;
		return;   
	}
	//获取源文件大小(以字节返回文件的大小【备注:如果文件的大小不超过2^32,那么第二个参数可以指定为NULL】)
	DWORD dwRemainSize=GetFileSize(hsrcFile,NULL);
	//设置缓冲区
	char buffer[1024] = {0};
	while(dwRemainSize>0)
	{
		DWORD dwActualRead=0;//用来保存实际读取字节数
		//读取源文件到缓冲区(备注:ReadFile在读取文件时,它会记住上一次读取的位置,当前读取会从上一次读取的末尾开始读取)
		ReadFile(hsrcFile,buffer,1024,&dwActualRead,NULL);
		dwRemainSize -= dwActualRead;//剩余文件大小
		DWORD dwOnceWrote=0;//用来保存实际写入字节数	  
		//把缓冲区内容写入目标文件
		WriteFile(hDestFile,	// 文件句柄
			buffer,		// 数据缓存区指针
			dwActualRead, // 想要写的字节数
			&dwOnceWrote, // 实际写入字节数
			NULL);		// OVERLAPPED结构体指针
	}
	CloseHandle(hsrcFile);
	CloseHandle(hDestFile);
}


int main(int argc, char argv[])
{
	char srcFile[100];
	cout<<"请输入源文件的路径及文件名"<<endl;
	cin>>srcFile;
	char destFile[100];
	cout<<"请输入目标文件的路径及文件名"<<endl;
	cin>>destFile;
	copyfuc(srcFile,destFile);

	return 0;
}

2、MFC操作文件

3、c++操作文件

4、c操作文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值