Computer/C, CPP, MFC
Updated: 2015. 10. 2. 16:32
hwaya.
하위폴더까지 전체 복사하기
반응형
BOOL ---------------::XCopy(char *Src, char *Dest, int my94)
{
HANDLE hSrch;
WIN32_FIND_DATA wfd;
BOOL bResult = TRUE;
char fname[MAX_PATH];
char WildCard[MAX_PATH]; // 원본
char HoneyCard[MAX_PATH]; // 사본
char SrcFile[MAX_PATH];
char DestFile[MAX_PATH];
strcpy_s(WildCard, Src);
strcat_s(WildCard, "\*.*");
strcpy_s(HoneyCard, Dest);
// 폴더위치
if (my94 == 0) // 재귀
{
}
else if (my94 == 1) // EZ-Raschel
{
strcat_s(HoneyCard, "\EZ-Raschel\\");
}
else if (my94 == 2) // Raschel
{
strcat_s(HoneyCard, "\Raschel\\");
}
CreateDirectory(HoneyCard, NULL);
hSrch = FindFirstFile(WildCard, &wfd);
if (hSrch == INVALID_HANDLE_VALUE)
{
return FALSE;
}
while (bResult)
{
wsprintf(fname, _T("%s\%s"), Src, wfd.cFileName);
// 서브 디렉토리가 발견되면 서브 디렉토리를 복사한다.
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if (wfd.cFileName[0] != '.')
{
wsprintf(SrcFile, _T("%s\%s\\"), Src, wfd.cFileName);
wsprintf(DestFile, _T("%s\%s\\"), HoneyCard, wfd.cFileName);
XCopy(SrcFile, DestFile, 0);
}
}
else
{
wsprintf(DestFile, _T("%s\%s"), HoneyCard, wfd.cFileName);
CopyFile(fname, DestFile, FALSE);
}
bResult = FindNextFile(hSrch, &wfd);
}
FindClose(hSrch);
return TRUE;
}
반응형
'Computer > C, CPP, MFC' 카테고리의 다른 글
CRegKey/SetValue 바꾸자 (0) | 2019.09.12 |
---|---|
ReadFile() (0) | 2015.12.04 |
SetFilePointer() (0) | 2015.12.04 |
프로그램 종료 (0) | 2015.10.13 |
윈도우 버전 알아보기 (0) | 2015.10.02 |
Windows Styles (0) | 2015.06.15 |
timeSetEvent 와 친구들 (0) | 2015.06.02 |
PeekMessage (0) | 2014.03.26 |