char lcl_path[255] = "c://data/data//data//data//data//data"; char szDir[255] = {0}, szFileName[255] = {0}, tmpDir[255] = {0}; int i, lastPos = 0, dirLen = strlen(lcl_path); memcpy(szDir, lcl_path, dirLen); for(i = 0; i < dirLen; i++) { if(('//' == szDir[i]) || ('/' == szDir[i])) {/* find the last '/' or '/', at the same time, set all '/' to '/' */ lastPos = i; szDir[i] = '/'; } } memcpy(szFileName, szDir + lastPos + 1, dirLen - lastPos - 1); szDir[lastPos] = 0; lastPos = 0; dirLen = strLen(szDir); for (i = 0; i < dirLen; i++) { if ('/' == szDir[i]) { if(!lastPos) {/* do not create directory 'cause it is not a valid directory */ lastPos = i; continue; } memcpy(tmpDir, szDir, i); mkdir(tmpDir); lastPos = i; } } mkdir(szDir); 嗯,以上代码是可以工作的.就是啰嗦了点.没有什么动力去改进了,凑合用吧.