예전에 폴더간의 복사를 하기 위한 모듈을 만들었었는데, CFileFind를 써서 리커젼으로 돌렸었다.
엄청난 수고를 했었는데 SHFileOperation를 이용해서 간단히 폴더간 복사를 수행할 수 잇는 방법을 찾았다.

int CopyFolder(CString szFrom, CString szTo)
{
SHFILEOPSTRUCT shfo;
int nRet;
char* pszFrom = new char[szFrom.GetLength()+1];
char* pszTo = new char[szTo.GetLength()+1];

EmptyDirectory(szTo);
SetFileAttributes(szTo, FILE_ATTRIBUTE_ARCHIVE);
RemoveDirectory(szTo);

strcpy(pszFrom, szFrom);
strcpy(pszTo, szTo);

shfo.hwnd = NULL;
shfo.wFunc = FO_COPY;
shfo.pFrom = pszFrom;
shfo.pTo = pszTo;
shfo.fFlags = FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_SILENT | FOF_NOCONFIRMMKDIR;
shfo.lpszProgressTitle = NULL;

nRet = SHFileOperation(&shfo);

delete[] pszFrom;
delete[] pszTo;

return nRet;
}


삽질을 하지말자 ㅡㅡ^
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기