注意:此项目是建立在MFC基础上的。代码如下:
#include "stdafx.h"
#include "SHFileCopy.h"
#include "SHFileCopyDlg.h"
#include <shellapi.h>
#include <string>
void copyfile(std::wstring srcfil, std::wstring desfil)
{
WCHAR src[256] = {0};
WCHAR des[256] = {0};
memset(src, 0, 256*sizeof(WCHAR));
memset(des, 0, 256*sizeof(WCHAR));
_tcscpy(src, srcfil.c_str());//注意这里,之前copy不成功就是因为这里
_tcscpy(des, desfil.c_str());
WCHAR *From = (WCHAR *)src;
WCHAR *To = (WCHAR *)des;
SHFILEOPSTRUCT op;
ZeroMemory(&op, sizeof(op));
op.hwnd = NULL; // 主窗体或应用程序的句柄
op.wFunc = FO_COPY;
op.pFrom = From;
op.pTo = To;
//op.fFlags= FOF_NOERRORUI;
op.fFlags= FOF_SIMPLEPROGRESS;
op.lpszProgressTitle = L"";
SHFileOperation( &op);
}
void CSHFileCopyDlg::OnBnClickedButton1()
{
USES_CONVERSION;
// TODO: 在此添加控件通知处理程序代码
// 复制SOURCE.TXT到DEST.TXT;
wstring src = L"C:\\TEST\\SRC\\较量无声.mp4";//源文件
wstring des = L"C:\\TEST\\DES";//目的路径(只需要写目录就行)
copyfile(src, des);
}