利用windows api实现文件拷贝
2013-12-12 13:18
267 查看
程序类型:Console
参数:源文件名 目的文件名
要求:
1.只能使用Windows API函数(CreateFile/ReadFile/WriteFile/CloseHandle)完成
注意点:
这里面涉及unicode和ansi编码问题,因为vs初始设置为unicode,所以你输入字符串时要转为wchar
有以下方法可以参考:
1.把字符编码方式修改为未设置,或者ansi
2.L"string",加L
参数:源文件名 目的文件名
要求:
1.只能使用Windows API函数(CreateFile/ReadFile/WriteFile/CloseHandle)完成
注意点:
这里面涉及unicode和ansi编码问题,因为vs初始设置为unicode,所以你输入字符串时要转为wchar
有以下方法可以参考:
1.把字符编码方式修改为未设置,或者ansi
2.L"string",加L
#include<Windows.h> #include<stdio.h> int main(int argc,TCHAR* argv[]){ if(argc!=3){ return 0; } HANDLE handlesrc; //const char* srcfile=argv[0]; handlesrc=CreateFile(argv[1], GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_TEMPORARY, 0); if(handlesrc==INVALID_HANDLE_VALUE){ printf("文件无法打开\n"); return 0; } HANDLE handledst; handledst=CreateFile(argv[2], GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_NEW, FILE_ATTRIBUTE_TEMPORARY, 0); if(handledst==INVALID_HANDLE_VALUE){ printf("文件已存在\n"); return 0; } DWORD size=GetFileSize(handlesrc,NULL); char* buff=new char[size+1]; DWORD dwRead=0,dwWrite; ReadFile(handlesrc,buff,size,&dwRead,NULL); buff[size]=0; WriteFile(handledst,buff,size,&dwWrite,NULL); delete[] buff; CloseHandle(handledst); CloseHandle(handlesrc); }
相关文章推荐
- 利用JAVA实现文件拷贝
- Java利用文件输入输出流实现文件夹内所有文件拷贝到另一个文件夹
- python进阶之利用多进程实现文件的拷贝
- 【python】利用sftp及rsa密匙实现远程拷贝文件
- 【python】利用sftp及rsa密匙实现远程拷贝文件
- 利用mmap实现文件拷贝
- 利用sql语句调用bat(批处理)+ftp实现文件远程拷贝和注入
- 利用C# 实现文件拷贝
- 利用mmap函数实现多进程文件拷贝
- 利用python多线程实现拷贝文件夹的文件
- 一个简单的利用ini配置文件以及用户输入的交互进行文件夹内容拷贝的批处理文件脚本的实现
- Java基础回顾 : 利用字节流实现文件的拷贝
- 利用生产者消费者模型实现大文件的拷贝
- 利用缓冲流BufferedReader和BufferedWriter来实现文件拷贝功能 package com.zt; import java.io.BufferedReader; import j
- 利用fgets和fputs实现文件拷贝
- IO学习(十一)利用字节数组流实现文件拷贝,QuesRemain
- warensoft .NET快速开发系列--C# 利用FileStream实现 文件拷贝
- 使用xib文件和自定义类来实现自定义View(如何利用xib封装一个View)
- iOS- 利用AFNetworking3.0+(最新AFN) - 实现文件断点下载
- 使用Bash Shell对目录中的文件实现递归式拷贝