SHFileOperation实现拷贝进度条

注意:此项目是建立在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);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值