1.含义

CopyFile(A, B, FALSE);表示将文件A拷贝到B,如果B已经存在则覆盖(第三参数为TRUE时表示不覆盖)

MoveFile(A, B);表示将文件A移动到B

2.函数原型

CopyFile:

#if defined(_M_CEE)
#undef CopyFile
__inline
BOOL
CopyFile(
LPCTSTR lpExistingFileName,
LPCTSTR lpNewFileName,
BOOL bFailIfExists
)
{
#ifdef UNICODE
return CopyFileW(
#else
return CopyFileA(
#endif
lpExistingFileName,
lpNewFileName,
bFailIfExists
);
}
#endif /* _M_CEE */

MoveFile:

#if defined(_M_CEE)
#undef MoveFile
__inline
BOOL
MoveFile(
LPCTSTR lpExistingFileName,
LPCTSTR lpNewFileName
)
{
#ifdef UNICODE
return MoveFileW(
#else
return MoveFileA(
#endif
lpExistingFileName,
lpNewFileName
);
}
#endif /* _M_CEE */

由函数原型可以看出,这两个函数的前两个输入参数都为LRCWSTR类型,如果我们定义的是char*,记得转换成LRCWSTR,否则会报错;

另外,这两个函数都返回一个bool型变量,表示执行成功与否,当目标位置路径不存在时,会return 0

3.Demo

CopyFile:

#include <fstream>
#include <windows.h> int main()
{
char *fn = "test.txt"; std::ofstream out(fn);
if (!out.is_open())
return 0;
out.close(); WCHAR buf[256];
memset(buf, 0, sizeof(buf));
MultiByteToWideChar(CP_ACP, 0, fn, strlen(fn) + 1, buf, sizeof(buf) / sizeof(buf[0]));
CopyFile(buf, L"../file/output.txt", FALSE);//FALSE:如果目标位置已经存在同名文件,就覆盖,return 1
//TRUE:如果目标位置已经存在同名文件,则补拷贝,return 0
//后者路径若不错在,return 0
system("pause");
return 1;
}

MoveFile:

#include <fstream>
#include <windows.h> int main()
{
char *fn = "test.txt"; std::ofstream out(fn);
if (!out.is_open())
return 0;
out.close(); WCHAR buf[256];
memset(buf, 0, sizeof(buf));
MultiByteToWideChar(CP_ACP, 0, fn, strlen(fn) + 1, buf, sizeof(buf) / sizeof(buf[0]));
MoveFile(buf, L"../file/output.txt");//FALSE:将前者移动到后者中(后者路径若不错在,return 0) system("pause");
return 1;
}

最新文章

  1. 【bb平台刷课记】wireshark结合实例学抓包
  2. Leetcode Valid Anagram
  3. springmvc上传文件,抄别人的
  4. for..in遍历,枚举器
  5. easyui textbox event 添加
  6. 分布式监控系统Zabbix-3.0.3-完整安装记录(5)-邮件报警部署
  7. 了解struts2 action的一些原理
  8. [改善Java代码]警惕泛型是不能协变和逆变的
  9. 如何设置MySQL数据库名、表名大小写敏感
  10. hdu1151+poj2594(最小路径覆盖)
  11. vs2005设置打开文件和保存文件编码
  12. 查看 linux 目录大小
  13. HDU4738 Caocao&#39;s Bridges【强连通】
  14. 《算法》第一章部分程序 part 1
  15. 启明星会议室系统与Office365集成说明
  16. CentOS7 nginx+tomcat实现代理访问java web项目让项目支持jsp和php
  17. 87. Scramble String *HARD* 动态规划
  18. 在Windows Server 2012 R2域环境中禁用(取消)密码复杂策略
  19. iOS 11开发教程(七)编写第一个iOS11代码Hello,World
  20. Qt监控excel

热门文章

  1. Git相关整理以及学习
  2. maven 入门 (一)
  3. js中利用cookie实现记住密码功能
  4. &lt;转&gt;jmeter(三)SOAP/XML-RPC Request
  5. Django框架----分页器(paginator)
  6. iOS项目之解析HTML数据
  7. EDK II之DXE Core框架简介
  8. php 接收blob数据流,base64数据流 转为 blob二进制数据流
  9. JavaScript之BOM对象
  10. Linux UinxODBC安装与配置