아주 유용한 소스코드일듯하다.

 

MFC에서 CString형을 이용하여 string을 쉽게 컨트롤 할 수 있다.

 

이때 경로, 파일명, 확장자 등을 구분하여 출력해야하는 상황이 있는데, 이때 해당 소스코드를 활용하면 될듯하다.

 

 

// Type
// 0: 파일 경로만 복사
// 1: 파일 이름만 복사
// 2: 파일 확장자 복사
// 3: 확장자를 뺀 파일명 복사


CString strClip(CString str, int nType)
{
 //파일 Full Path를 복사
 TCHAR szTmp[256];
 StrCpy(szTmp, str);

 //파일의 경로만 복사.
 PathRemoveFileSpec(szTmp);
 CString strTmp = szTmp;

 if(nType == 0)
  return strTmp;

 //파일 이름만 복사
 strTmp = str.Right(str.GetLength()-strTmp.GetLength()-1);

 if(nType == 1)
  return strTmp;

 //파일 확장자 복사
 int i = strTmp.ReverseFind('.');
 CString strTmp2;
 if(i > -1)
 {
  strTmp2 = strTmp.Right(strTmp.GetLength()-i-1);
 }
 else
 {
  strTmp2 = _T("");
 }
 
 
 if(nType == 2)
  return strTmp2;

 //확장자를 뺀 파일명을 복사
 strTmp = strTmp.Left(i);
 if(nType == 3)
  return strTmp;


 return _T("");
}

 

단지 디렉토리 경로일 경우는 파일명에 마지막 디렉토리를 리턴하게 된다.

 

 

참조 : http://blog.naver.com/just720?Redirect=Log&logNo=40206748318

 

 

 

 

 

 

 

 

 

2013/11/26 - [[ Topics ]/MFC] - MFC Edit control 에서 실수형 값 가져오는방법

 

2013/09/05 - [[ Topics ]/MFC] - error C2589 에 대한 고찰과 문제 해결방법

 

2013/07/30 - [[ Topics ]/MFC] - MFC Dialog창을 modaless할때 포커스 옮기는법

 

2012/09/04 - [[ Topics ]/MFC] - MFC 새다이얼로그를 생성시 OnDestroy() 경고 및 Memory Leaks

 

2012/09/03 - [[ Topics ]/MFC] - MFC 다이얼로그 기반 OnIdle()과 KickIdle() 그리고 modaless

 

2010/07/29 - [[ Topics ]/MFC] - MFC에서 글자 출력

 

Posted by Tommy™
,