간혹 파일 관련 작업하다보면 파일명과 경로를 따로 구분해야 할 때가 있다.
아무래도 문자열 및 포인터를 가지고 장난 치는거라 하다보면 뻑날 때도 있고 매번 하려니 시간이 아깝다.
그래서 어차피 매번 할거 다음에 쓸 때도 편하게 정리해놓는게 좋을 것 같다.
다만 아스키 코드 기준이고 유니코드용은 아니라는 점을 기억해둘 필요가 있다.
const char* _FilePath;
char* mpFIleName; // 로그 파일 명
char* mpFilePath; // 로그 파일 경로
unsigned short pathLength = strlen(_FilePath); // 파일명 포함 전체 경로 길이
unsigned short idxFileNameEndPos = 0; // 파일경로(파일명 제외)가 끝나는 인덱스
// 파일 경로 끝 위치 추출
for( int i = pathLength ; i > 0 ; i-- )
{
if( _FilePath[i] == '\\')
{
idxFileNameEndPos = i;
break;
}
}
// 파일 경로(파일명 제외) 추출
mpFilePath = (char*)malloc(sizeof(char) * (idxFileNameEndPos + 2));
//mpFilePath = new char[idxFileNameEndPos + 2];
memcpy_s(mpFilePath, idxFileNameEndPos+1, _FilePath, idxFileNameEndPos+1);
mpFilePath[idxFileNameEndPos+1] = '\0';
// 파일명 추출(경로 제외)
unsigned short fileNameLength = pathLength - idxFileNameEndPos - 1; // 파일명 길이 계산
mpFIleName = (char*)malloc(sizeof(char) * (fileNameLength + 1));
//mpFIleName = new char[fileNameLength + 1];
memcpy_s(mpFIleName, fileNameLength, _FilePath + idxFileNameEndPos + 1, fileNameLength);
mpFIleName[fileNameLength] = '\0';
'Study > C' 카테고리의 다른 글
[C언어] 120427 배열 (0) | 2012.04.27 |
---|---|
[C언어] 120413 배열, 재귀함수 (0) | 2012.04.13 |
[C언어] 반복문 for와 while, 함수 (0) | 2012.04.06 |
[C언어] 120330 (0) | 2012.03.30 |
[C언어] 120316 변수 (0) | 2012.03.16 |