【task】
做一个控制台程序的demo,具备两个参数输入,一个srcdir 一个dstdir,都是字符串文件夹地址类型,实现功能将srcdir地址的内的所有内容拷贝至dstdir中
【解决方案】
刚开始搜一些资料发现有很多用CopyFile函数来拷贝文件的,用法如下
CopyFile("C:\\a.txt","C:\\b.txt",FALSE);
只要输入源文件地址,以及目的文件地址就可以了,知道了怎么拷贝文件,之前也写过文件夹遍历相关的代码,所以拷贝文件夹就简单很多了,只要打开文件夹用文件句柄遍历拷贝就可以了,于是很快写完,但是调试的时候发现这个函数不是很友好。。。
问题1:CopyFile函数定义如下,参数是LPCWSTR类型的,而代码中参数是string类型的,这两个类型间无法直接转换
CopyFileW(
_In_ LPCWSTR lpExistingFileName,
_In_ LPCWSTR lpNewFileName,
_In_ BOOL bFailIfExists
);
这是LPCWSTR类型的定义,LPCWSTR是一个指向unicode编码字符串的32位指针,所指向字符串是wchar型,而不是char型
typedef const wchar_t* LPCWSTR;
于是搜到别人写好的转换方法(感谢),这个问题算是解决了&