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操作文件