[C / C++] PATH로 디렉토리 생성
윈도운 버전!
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 디렉토리 만든다.
생각보다 쉽기도 하고 생각보다 어렵기도 한 내용!! 고생해서 만들었음 으흐흐