16,472
社区成员
发帖
与我相关
我的任务
分享
void CDialogDemoDlg::Test()
{
LPCTSTR lpExistingPathName = _T("c:\\Test\\我的股市.xls"); //源文件
LPCTSTR lpNewPathName = _T("c:\\Test\\我的股市2.xls"); //目标文件
//调用核心API函数CopyFileEx来复制文件
BOOL bSucceed = CopyFileExW(lpExistingPathName //源文件
, lpNewPathName //目标文件
, CopyProgressRoutine //CopyFileEx的回调函数,在此函数中实现文件复制过程的控制。
, NULL
, NULL
, COPY_FILE_ALLOW_DECRYPTED_DESTINATION // 即使目标副本无法加密,复制加密文件的尝试也将成功
| COPY_FILE_COPY_SYMLINK); // 如果源文件是快捷方式,则目标文件也是指向源快捷方式所指向的同一文件的快捷方式
if (bSucceed)
{
m_edit.SetWindowText(_T("成功"));
}
else
{
DWORD nError = GetLastError();
ERROR_REQUEST_ABORTED;
CString str;
str.Format(_T("失败,错误代码%d"), nError);
m_edit.SetWindowText(str);
}
UpdateData(FALSE);
}
DWORD CDialogDemoDlg::CopyProgressRoutine(LARGE_INTEGER TotalFileSize, LARGE_INTEGER TotalBytesTransferred, LARGE_INTEGER StreamSize, LARGE_INTEGER StreamBytesTransferred, DWORD dwStreamNumber, DWORD dwCallbackReason, HANDLE hSourceFile, HANDLE hDestinationFile, LPVOID lpData)
{
return 0;
}