深い階層のディレクトリも一発で作れるよう再帰を利用する
動作検証は Visual C++ Ver6.0 で行った。
int makeDir( const char* in_Path ) { while( -1 == _mkdir(in_Path) ) { if( ENOENT == errno ) { // 一つ上のフォルダを作成する char drive[_MAX_DRIVE]; char dir[_MAX_DIR]; _splitpath(in_Path, drive, dir, NULL, NULL); if( '\\' == dir[strlen(dir)-1] ) { dir[strlen(dir)-1] = '\0'; } char path[_MAX_PATH]; sprintf( path, "%s%s", drive, dir ); if( -1 == makeDir(path) ) { return -1; } } else { return -1; } } return 0; }