'Development/C++ / MFC'에 해당되는 글 4건
- 2010.02.21 printf의 인자 ... 를 내가 만든 함수에 쓰고 싶을 때 - Ellipsis notation 4
- 2009.08.09 MFC - CFileDialog에서 초기 경로명 지정하기
- 2009.08.09 API/MFC - 실행파일 경로
- 2009.08.09 API - 파일경로관련
CFileDialog을 생성 후 DoModal을 하기 전에
CFileDialog의 m_ofn에 초기 경로명을 설정
fileOpenDlg.m_ofn.lpstrInitialDir = "c:\\디폴트폴더";
TCHAR path[_MAX_PATH];
GetModuleFileName(NULL, path, sizeof path);
CString strPath = path;
int i = strPath.ReverseFind('\\');//실행 파일 이름을 지우기 위해서 왼쪽에 있는 '/'를 찾는다.
strPath = strPath.Left(i);//뒤에 있는 현재 실행 파일 이름을 지운다.
AfxMessageBox(strPath);
CFileDialog 생성시
OFN_NOCHANGEDIR <== 이 옵션을 주어서 생성하면 바뀌지 않는다.
MFC에선
char CurrentDIR[_MAX_PATH];
GetCurrentDirectory(_MAX_PATH,CurrentDIR);
으로 간단하게
함 수 명
인 자
결 과
PathAddBackslash
c:\path1
c:\path1\
PathCompactPath
c:\path1\path2\path3\file.txt
c:\path1\...\file.txt
PathFileExists
c:\path1\file.txt
파일의존재유무[T/F]
PathFindFileName
c:\path1\path2\file.txt
file.txt
PathIsDirectory
c:\path1\path2
디렉토리유무[T/F]
PathRemoveBackslash
c:\path1\path2\
c:\path1\path2
PathRemoveBlanks
“ c:\path1\path2 “
“c:\path1\path2”
PathRemoveExtension
c:\path1\path2\file.txt
c:\path1\path2\file
PathRemoveFileSpec
c:\path1\path2\file.txt
c:\path1\path2
PathRenameExtension
c:\path1\path2\file.txt
c:\path1\path2\file.changed
PathStripPath
c:\path1\path2\file.txt
file.txt
BOOL PathCompactPath( HDC hDC, LPTSTR lpszPath, UINT dx );
lpszPath에 포함된 경로 문자열을 dx pixel 크기에 출력하기 적절하게 잘라준다.
C:\path1\path2\sample.txt
C:\path1\...\sample.txt
C:\p...\sample.txt
BOOL PathFileExists( LPCTSTR pszPath );
제시된 경로의 파일/폴더가 실제로 존재하는지 검사한다.
LPTSTR PathFindExtension( LPCTSTR pPath );
파일 경로에서 확장자를 찾아준다. (pPath에서 확장자가 시작되는 위치를 반환).
LPTSTR PathFindFileName( LPCTSTR pPath );
파일 경로에서 파일 이름을 찾아준다. (pPath에서 이름이 시작되는 위치를 반환).
BOOL PathFindOnPath( LPTSTR pszFile, LPCTSTR *ppszOtherDirs );
파일을 검색한다. 만약 검색에 성공하면 pszFile에는 해당 파일의 전체 경로가 담겨져서 반환된다.
ppszOtherDirs가 NULL이라면 windows 기본 경로(system32, 환경 변수 path의 값 등)에서 파일을 검색한다.
주의: 여러개의 파일이 존재 하더라도, 첫번째로 검색된 파일의 경로만 반환한다.
BOOL PathIsDirectory( LPCTSTR pszPath );
실제로 존재하는 폴더인지 확인한다.
BOOL PathRelativePathTo( LPTSTR pszPath, LPCTSTR pszFrom, DWORD dwAttrFrom, LPCTSTR pszTo, DWORD dwAttrTo );
pszFrom에서 pszTo로 가는 상대경로를 구해서 pszPath에 담아준다. 당연한 소리지만 pszFrom과 pszTo는 동일한 Prefix에서 시작해야 한다.
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";
LPTSTR PathRemoveBackslash( LPTSTR lpszPath );
경로 맨 끝에 back slash(\)가 있다면 지워준다.
void PathRemoveExtension( LPTSTR pszPath );
확장자를 제거한다.
void PathUnquoteSpaces( LPTSTR lpsz );
경로를 둘러싼 큰 따옴표(")를 제거해 준다.
PathUnquoteSpaces("\"c:\temp\"") = c:\temp
int UrlCompare( LPCTSTR pszURL1, LPCTSTR pszURL2, BOOL fIgnoreSlash );
두 URL 문자열을 비교한다. (대소문자 구분 없음)
HRESULT UrlEscape( LPCTSTR pszURL, LPTSTR pszEscaped, LPDWORD pcchEscaped, DWORD dwFlags );
URL로 사용할 수 없는 문자들(^, {, " 등)을 URL encoding된 문자열로 변환해 준다.
HRESULT UrlEscapeSpaces( LPCTSTR pszURL, LPTSTR pszEscaped, LPDWORD pcchEscaped );
URL에 포함된 공백을 escapce처리
HRESULT UrlGetPart( LPCTSTR pszIn, LPTSTR pszOut, LPDWORD pcchOut, DWORD dwPart, DWORD dwFlags );
dwPart값에 따라 URL에서 특정부분을 분리해 준다. (hostname, port...)
BOOL UrlIs( LPCTSTR pszUrl, URLIS UrlIs );
URL이 UrlIs에 제시된 조건(적합한 URL인가? 파일 경로인가? 등)에 맞는 구성인지 확인한
출처 : http://blog.naver.com/aquayo/80049129601