Coding Tip/C/C++

[C / C++] PATH로 디렉토리 생성

장피디 2011. 10. 24. 12:36
반응형



윈도운 버전!

void MakeDirectory(char *full_path)
{
char temp[256], *sp;
strcpy(temp, full_path); // 경로문자열을 복사
sp = temp; // 포인터를 문자열 처음으로

while((sp = strchr(sp, '\\'))) { // 디렉토리 구분자를 찾았으면
if(sp > temp && *(sp - 1) != ':') { // 루트디렉토리가 아니면
*sp = '\0'; // 잠시 문자열 끝으로 설정
//mkdir(temp, S_IFDIR);
CreateDirectory(temp, NULL);
// 디렉토리를 만들고 (존재하지 않을 때)
*sp = '\\'; // 문자열을 원래대로 복귀
}
sp++; // 포인터를 다음 문자로 이동
}

}

MakeDirectory("C:\\TEMP\\BIN\\ABC.txt");

처럼 호출하면

C:\TEMP 디렉토리 만들고

C:\TEMP\BIN 디렉토리 만든다.

유닉스 버전


void MakeDirectory(char *full_path)
{
char temp[256], *sp;

strcpy(temp, full_path); // 경로문자열을 복사
sp = temp; // 포인터를 문자열 처음으로

while((sp = strchr(sp, '/'))) { // 디렉토리 구분자를 찾았으면
if(sp > temp && *(sp - 1) != ':') { // 루트디렉토리가 아니면
*sp = '\0'; // 잠시 문자열 끝으로 설정
mkdir(temp, S_IFDIR | S_IRWXU | S_IRWXG | S_IXOTH | S_IROTH);
// 디렉토리를 만들고 (존재하지 않을 때)
*sp = '/'; // 문자열을 원래대로 복귀
}
sp++; // 포인터를 다음 문자로 이동
}
}

MakeDirectory("/TEMP/BIN/abc.txt");

처럼 호출하면

/TEMP 디렉토리 만들고

/TEMP/BIN 디렉토리 만든다.

생각보다 쉽기도 하고 생각보다 어렵기도 한 내용!! 고생해서 만들었음 으흐흐

반응형