본문 바로가기
C++ 200제/코딩 IT 정보

[MFC강좌] 폴더 파일 경로 4. PathParseIconLocation 등 10개 함수

by vicddory 2017. 11. 16.

[MFC강좌] 폴더 파일 경로 4. PathParseIconLocation 등 10개 함수


int PathParseIconLocation( LPTSTR pszIconFile );

pszIconFile에 파일 경로와 아이콘 인덱스가 포함된 경우 이를 적절하게 분리해 준다.

pszIconFile에는 경로가, 아이콘 인덱스는 반환 값으로 나오게 되며, pszIconFile은 "경로, icon index" 형식이어야 한다.


BOOL PathQuoteSpaces( LPTSTR lpsz );

lpsz에서 공백이 발견되면 lpsz를 큰 따옴표(")로 묶어준다.

공백이 없다면 아무 일도 하지 않고 FALSE가 반환된다.


BOOL PathRelativePathTo(LPTSTR pszPath, LPCTSTR pszFrom, DWORD dwAttrFrom, LPCTSTR pszTo, DWORD dwAttrTo );

pszFrom에서 pszTo로 가는 상대경로를 구해서 pszPath에 담아준다. 당연한 소리지만 pszFrom과 pszTo는 같은 Prefix에서 시작해야 한다.


1
2
3
4
5
6
7
8
TCHAR buffer[MAX_PATH];
 
BOOL PathRelativePathTo( buffer, "c:/a/b/c/",
    FILE_ATTRIBUTE_DIRECTORY,
    "c:/a/1/2/test.txt",
    FILE_ATTRIBUTE_NORMAL);
 
buffer = "../../1/2/test.txt";
cs

void PathRemoveArgs( LPTSTR pszPath );

경로에 포함된 인자(argv)를 지워준다.


LPTSTR PathRemoveBackslash( LPTSTR lpszPath );

경로 맨 끝에 back slash(\)가 있다면 지워준다.


void PathRemoveBlanks( LPTSTR lpszString );

Trim과 유사하다. 경로 앞뒤의 공백을 제거한다.


MFC 강좌 PATH 설정[[MFC강좌] 폴더 파일 경로 4. PathParseIconLocation 등 10개 함수]


void PathRemoveExtension( LPTSTR pszPath );

확장자를 제거한다.


BOOL PathRemoveFileSpec( LPTSTR pszPath );

파일이름을 제거한다. 주의할 점은 맨 끝의 "\"도 지워진다.


PathRemoveFileSpec("c:\temp\test.txt") = "c:\temp"


BOOL PathRenameExtension( LPTSTR pszPath, LPCTSTR pszExt );

파일 경로의 확장자를 지정된 확장자로 교체한다.


PathRenameExtension( "c:\temp\test.xml", ".txt") = "c:\temp\test.txt"


MFC 강좌 폴더 파일 경로[[MFC강좌] 폴더 파일 경로 4. PathParseIconLocation 등 10개 함수]


BOOL PathSearchAndQualify( LPCTSTR pcszPath, LPTSTR pszFullyQualifiedPath, UINT cchFullyQualifiedPath );

제시된 경로 pcszPath에 오류가 있다면 이를 바로잡아서 pszFullyQualifiedPath에 담아준다.

상대경로를 적절히 계산해 주고, 시스템 변수가 사용된 경우 이를 적절히 확장해 준다.


TCHAR buffer[MAX_PATH];

PathSearchAndQualify( "c:\a\..\b", buffer, MAX_PATH) = c:\-;

PathSearchAndQualify( "c:\a\\\b", buffer, MAX_PATH) = c:\a\-;

PathSearchAndQualify( "notepad.exe", buffer, MAX_PATH) = c:\windows\system32\notepad.exe;


PathSearchAndQualify( "%SystemRoot%system32\notepad.exe", buffer, MAX_PATH) =

 c:\windows\system32\notepad.exe;


[MFC강좌] 폴더 파일 경로 4. PathParseIconLocation 등 10개 함수

댓글