[MFC강좌] 폴더 파일 경로 2. PathFindFileName 등 15개 함수
LPTSTR PathFindFileName( LPCTSTR pPath );
파일 경로에서 『파일 이름』을 찾아준다. pPath에서 이름이 시작되는 위치를 반환.
LPTSTR PathFindNextComponent( LPCTSTR pszPath );
다음 위치의 경로를 찾아준다. 어떤 경로에 대해 순차 접근이 필요하다면 사용해볼 법하다.
- PathFindNextComponent( "c:\windows\system32" ) = windows\system32
- PathFindNextComponent( "windows\system32") = system32
BOOL PathFindOnPath( LPTSTR pszFile, LPCTSTR *ppszOtherDirs );
파일을 검색한다. 만약 검색에 성공하면 pszFile에는 해당 파일의 전체 경로가 담겨서 반환된다.
ppszOtherDirs가 NULL이라면 windows 기본 경로(system32, 환경 변수 path의 값 등)에서 파일을 검색한다.
- 주의 : 여러 개의 파일이 존재하더라도, 첫 번째로 검색된 파일의 경로만 반환한다.
PCTSTR PathFindSuffixArray(LPCTSTR pszPath, const LPCTSTR *apszSuffix, int iArraySize );
PathFindOnPath와 유사하다. 다만, apszSuffix를 통해 검색할 경로를 여러 개 지정할 수 있다. (기본경로 검색은 하지 않음)
- 주의 : 대소문자를 구분한다.
LPTSTR PathGetArgs( LPCTSTR pszPath );
경로에 포함된 매개변수(argv)를 찾아준다.
- PathGetArgs("c:\test.exe temp.txt /x") = "temp.txt /x"
UINT PathGetCharType( TUCHAR ch );
문자가 경로 문자열에 사용되면 어떤 의미인지 알려준다. 경로에 포함될 수 있는 문자인가? 경로 구분자('\')인가? 등등..
이 함수를 이용해서 경로에 사용할 수 있는 문자열인지를 검사할 수 있다.
int PathGetDriveNumber( LPCTSTR lpsz );
제시된 경로에 포함된 드라이브 문자(c:\)의 식별 번호를 반환한다.
BOOL PathIsContentType( LPCTSTR pszPath, LPCTSTR pszContentType );
제시된 파일 경로가(확장자만 넘겨줘도 됨) 등록된 contents type과 일치하는지 검사한다.
- PathIsContentType( "c:\temp.txt", "text/plain" ) = TRUE
BOOL PathIsDirectory( LPCTSTR pszPath );
『실제로 존재』하는 폴더인지 확인한다.
BOOL PathIsDirectoryEmpty( LPCTSTR pszPath );
비어있는(안에 파일이나 서브 폴더가 없는) 폴더인지 확인한다.
BOOL PathIsFileSpec( LPCTSTR lpszPath );
제시된 경로가 파일명만으로 구성되어 있는지 조사한다.
정확히 말하자면, 경로를 구성하는데 사용되는 문자가 포함되어 있으면 FALSE가 반환된다.
- 주의 : 파일명으로 사용할 수 없는 문자(/, :, * 등)가 들어있는가? 를 검사하는 함수가 아니다!!
BOOL PathIsHTMLFile( LPCTSTR pszFile );
제시된 경로의 확장자가 HTML 유형인가를 검사한다.
한마디로, 레지스트리에 등록된 content type이 text/html이라면 TRUE. (.htm, .html, .xhtml ...)
BOOL PathIsLFNFileSpec( LPCTSTR pszName );
제시된 경로가 『Long File Name spec』에 적합한지 검사한다. (아마 쓸 일은 거의 없을듯싶다 -_-;)
BOOL PathIsNetworkPath( LPCTSTR pszPath );
경로가 네트워크 경로라면 TRUE. 단, 실제로 존재하는 네트워크 경로인가는 다른 얘기다!
BOOL PathIsPrefix( IN LPCTSTR pszPrefix, IN LPCTSTR pszPath );
경로가 pszPrefix로 시작되는가를 검사한다. 같은 드라이브에 있는 파일인지 검사할 때 유용하다.
BOOL PathIsRelative( LPCTSTR lpszPath );
경로가 상대경로인지 검사한다.
- 주의 : 파일명만 제시된 경우, 상대경로로 인식한다.
[MFC강좌] 폴더 파일 경로 2. PathFindFileName 등 15개 함수