CreateDirectory() 는 마지막 폴더만 생성하는 함수입니다.
다음은 원하는 Full Path 의 폴더를 생성시켜주는 함수입니다.
BOOL AutoCreateDirectory(TCHAR* dir)
{
TCHAR path[MAX_PATH] = {0, };
TCHAR *p = dir;
int nStep = 0;
BOOL bRet = FALSE;
// 0 1 2 3
// c:\test\1234\5678\23412
while( true )
{
if (*p == '\\' || *p == NULL)
{
if (nStep >= 1)
{
_tcsncpy(path, dir, (p-dir));
path[(p-dir)] = '\0';
bRet = CreateDirectory(path, NULL);
if (bRet == NULL && GetLastError() != ERROR_ALREADY_EXISTS)
{
TRACE("심각한 오류 : 폴더 생성 실패. 원인 %ld \n", GetLastError());
return FALSE;
}
}
if (*p == NULL)
break;
nStep++;
}
p++;
}
return TRUE;
}
휴~ 이넘의 지저분한 소스... 매번 느끼는거지만 초간단 플밍만 하니 소스가 이모양이지....