用SHFileOperation()可以实现Copy,Delete,Move文件和目录吗? 应该可以,据说还可以有动画显示,不过俺没试过:PPPPP 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SHFILEOPSTRUCT m_shFileOp;m_shFileOp.hwnd = hWnd;m_shFileOp.fFlags = FOF_FILESONLY | FOF_NOCONFIRMMKDIR | FOF_MULTIDESTFILES ;m_shFileOp.fAnyOperationsAborted = FALSE; m_shFileOp.hNameMappings = NULL; m_shFileOp.lpszProgressTitle = NULL; //char m_buffFrom[20480];char m_buffTo[20480];LONG m_buffLenFrom = 0;LONG m_buffLenTo = 0;void CFileOp::AddFromFile(CString file){ LONG len = file.GetLength(); memcpy((void*)&m_buffFrom[m_buffLenFrom], (void*)LPCTSTR(file), len+1); m_buffLenFrom += len+1; m_buffFrom[m_buffLenFrom] = 0; m_shFileOp.pFrom = &m_buffFrom[0];}void CFileOp::AddToFile(CString file){ LONG len = file.GetLength(); memcpy((void*)&m_buffTo[m_buffLenTo], (void*)LPCTSTR(file), len+1); m_buffLenTo += len+1; m_buffTo[m_buffLenTo] = 0; m_shFileOp.pTo = &m_buffTo[0];}AddFromFile( "c:\\tmp\\t1.txt");AddFromFile( "c:\\tmp\\t2.txt");AddToFile( "d:\\tmp\\t1.txt");AddToFile( "d:\\tmp\\t2.txt");// Copym_shFileOp.wFunc = FO_COPY;::SHFileOperation(&m_shFileOp);// Movem_shFileOp.wFunc = FO_MOVE;::SHFileOperation(&m_shFileOp);// Deletem_shFileOp.wFunc = FO_DELETE;::SHFileOperation(&m_shFileOp);// Renamem_shFileOp.wFunc = FO_RENAME;::SHFileOperation(&m_shFileOp); 【软件最后一个问题】需要一点思路,请大家来一起讨论一下 关于工具栏(菜单)按钮在OnUpdateXXXX(CCmdUI* pCmdUI) ListBox排序的一个问题 求助:我要拆分一个窗口,左边为一个树形控件,右边为一个列表控件。该怎么弄啊? 如何获得IE浏览器的滚动区(显示网页的区域)的范围 SDK,如何使主窗口居中显示? 救命 登录验证问题 如何实现一个形状逐渐变大的窗口? 如何读取txt文本中既有逗号,又有空格的数据? 求助:vC++2015出错:编号的预期结尾后有多余文本 fuck! 我受不了了,这个CSocket问题 在多线程中,CEvent有什么用?如何用?
m_shFileOp.hwnd = hWnd;
m_shFileOp.fFlags = FOF_FILESONLY | FOF_NOCONFIRMMKDIR | FOF_MULTIDESTFILES ;
m_shFileOp.fAnyOperationsAborted = FALSE;
m_shFileOp.hNameMappings = NULL;
m_shFileOp.lpszProgressTitle = NULL; //
char m_buffFrom[20480];
char m_buffTo[20480];
LONG m_buffLenFrom = 0;
LONG m_buffLenTo = 0;void CFileOp::AddFromFile(CString file)
{
LONG len = file.GetLength();
memcpy((void*)&m_buffFrom[m_buffLenFrom], (void*)LPCTSTR(file), len+1);
m_buffLenFrom += len+1;
m_buffFrom[m_buffLenFrom] = 0;
m_shFileOp.pFrom = &m_buffFrom[0];
}void CFileOp::AddToFile(CString file)
{
LONG len = file.GetLength();
memcpy((void*)&m_buffTo[m_buffLenTo], (void*)LPCTSTR(file), len+1);
m_buffLenTo += len+1;
m_buffTo[m_buffLenTo] = 0;
m_shFileOp.pTo = &m_buffTo[0];
}AddFromFile( "c:\\tmp\\t1.txt");
AddFromFile( "c:\\tmp\\t2.txt");
AddToFile( "d:\\tmp\\t1.txt");
AddToFile( "d:\\tmp\\t2.txt");// Copy
m_shFileOp.wFunc = FO_COPY;
::SHFileOperation(&m_shFileOp);// Move
m_shFileOp.wFunc = FO_MOVE;
::SHFileOperation(&m_shFileOp);// Delete
m_shFileOp.wFunc = FO_DELETE;
::SHFileOperation(&m_shFileOp);// Rename
m_shFileOp.wFunc = FO_RENAME;
::SHFileOperation(&m_shFileOp);