一个很简单的问题:如何异步复制文件,显示进度,并且能够中途取消复制。最好能有代码

adidasprince 2002-11-29 01:58:08
谢谢:)
...全文
124 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuchuncai 2002-12-03
  • 打赏
  • 举报
回复
#include "winbase.h"
BOOL CopyFlag;
BOOL pbCancel;
DWORD dwThreadId;
HANDLE hThread;


DWORD CALLBACK CopyProgressRoutine(
LARGE_INTEGER TotalFileSize, // total file size, in bytes
LARGE_INTEGER TotalBytesTransferred,
// total number of bytes transferred
LARGE_INTEGER StreamSize, // total number of bytes for this stream
LARGE_INTEGER StreamBytesTransferred,
// total number of bytes transferred for
// this stream
DWORD dwStreamNumber, // the current stream
DWORD dwCallbackReason, // reason for callback
HANDLE hSourceFile, // handle to the source file
HANDLE hDestinationFile, // handle to the destination file
LPVOID param // passed by CopyFileEx
)
{
//if(TotalBytesTransferred*100%TotalFileSize)
{
((CDbfUpdateDlg*)param)->m_ShowProgress.SetRange32(1,100);
((CDbfUpdateDlg*)param)->m_ShowProgress.SetPos(TotalBytesTransferred.QuadPart*100/TotalFileSize.QuadPart);
}
if(pbCancel)return TRUE;
return FALSE;
}
DWORD CopyThreadFunc(LPDWORD param)
{
pbCancel=FALSE;
CopyFileEx(
((CDbfUpdateDlg*)param)->CopyFileName.SFile,
((CDbfUpdateDlg*)param)->CopyFileName.DFile,
CopyProgressRoutine,
param,
&pbCancel,
COPY_FILE_FAIL_IF_EXISTS
);
return 0;
}
//说明 CopyThreadFunc(LPDWORD param)
创建一线程进行文件拷贝
CopyProgressRoutine为CopyFileEx的回调函数
返回true则拷贝停止,可以在其中显示进度

adidasprince 2002-12-03
  • 打赏
  • 举报
回复
:)
所以写在了线程版里了呀
我自己找到了两个

http://www.codeproject.com/internet/ftpwanderer.asp
http://www.codeguru.com/internet/ftp_download.shtml
adidasprince 2002-12-02
  • 打赏
  • 举报
回复
因为看了很多关于线程的东西,但好像还是一团雾水
所以想看些代码,大家有吗?
lkcowboy 2002-12-02
  • 打赏
  • 举报
回复
gz
NowCan 2002-12-02
  • 打赏
  • 举报
回复
so faint!
NowCan 2002-12-01
  • 打赏
  • 举报
回复
函数名好像不对,是ShFileOperation?
NowCan 2002-12-01
  • 打赏
  • 举报
回复
或者干脆用Shell函数ShellFileOperation
NowCan 2002-12-01
  • 打赏
  • 举报
回复
http://vip.6to23.com/NowCan1/tech/copyex.htm
leeza 2002-11-30
  • 打赏
  • 举报
回复
CopyFileEx可以实现这个功能:)
嗬嗬,看看msdn的说明就足够了:)

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧