티스토리 뷰

목차

    반응형

    [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개 함수

    반응형