PathRelativePathToW 함수(shlwapi.h)
한 파일 또는 폴더에서 다른 파일로의 상대 경로를 만듭니다.
구문
BOOL PathRelativePathToW(
[out] LPWSTR pszPath,
[in] LPCWSTR pszFrom,
[in] DWORD dwAttrFrom,
[in] LPCWSTR pszTo,
[in] DWORD dwAttrTo
);
매개 변수
[out] pszPath
형식: LPTSTR
상대 경로를 수신하는 문자열에 대한 포인터입니다. 이 버퍼의 크기는 최소 MAX_PATH 문자여야 합니다.
[in] pszFrom
형식: LPCTSTR
상대 경로의 시작을 정의하는 경로가 포함된 최대 길이 MAX_PATH null로 끝나는 문자열에 대한 포인터입니다.
[in] dwAttrFrom
형식:DWORD
pszFrom의 파일 특성입니다. 이 값에 FILE_ATTRIBUTE_DIRECTORY 포함된 경우 pszFrom 은 디렉터리로 간주됩니다. 그렇지 않으면 pszFrom 은 파일로 간주됩니다.
[in] pszTo
형식: LPCTSTR
상대 경로의 엔드포인트를 정의하는 경로를 포함하는 최대 길이 MAX_PATH null로 끝나는 문자열에 대한 포인터입니다.
[in] dwAttrTo
형식:DWORD
pszTo의 파일 특성입니다. 이 값에 FILE_ATTRIBUTE_DIRECTORY 포함된 경우 pszTo 는 디렉터리로 간주됩니다. 그렇지 않으면 pszTo 는 파일로 간주됩니다.
반환 값
형식: BOOL
성공하면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다.
설명
이 함수는 한 쌍의 경로를 사용하고 상대 경로를 한 쪽에서 다른 경로로 생성합니다. 경로는 정규화할 필요는 없지만 공통 접두사를 가져야 합니다. 그렇지 않으면 함수가 실패하고 FALSE를 반환합니다.
예를 들어 시작점 pszFrom을 "c:\FolderA\FolderB\FolderC"로 지정하고 끝점 인 pszTo를 "c:\FolderA\FolderD\FolderE"로 설정합니다. PathRelativePathTo 는 pszFrom 에서 pszTo 로의 상대 경로를 "....\FolderD\FolderE"로 반환합니다. pszFrom을 "\FolderA\FolderB\FolderC"로 설정하고 pszTo를 "\FolderA\FolderD\FolderE"로 설정하면 동일한 결과를 얻게 됩니다. 반면에 "c:\FolderA\FolderB" 및 "a:\FolderA\FolderD는 공통 접두사를 공유하지 않으며 함수가 실패합니다. "\"는 접두사로 간주되지 않으며 무시됩니다. pszFrom을 "\FolderA\FolderB"로 설정하고 pszTo를 "\FolderC\FolderD"로 설정하면 함수가 실패합니다.
예제
#include <windows.h>
#include <iostream.h>
#include "Shlwapi.h"
void main(void)
{
char szOut[MAX_PATH] = "";
char szFrom[ ] = "c:\\a\\b\\path";
char szTo[ ] = "c:\\a\\x\\y\\file";
cout << "The relative path is relative from: ";
cout << szFrom;
cout << "\n";
cout << "The relative path is relative to: ";
cout << szTo;
cout << "\n";
PathRelativePathTo(szOut,
szFrom,
FILE_ATTRIBUTE_DIRECTORY,
szTo,
FILE_ATTRIBUTE_NORMAL);
cout << "The relative path is: ";
cout << szOut;
cout << "\n";
}
OUTPUT:
==================
The relative path is relative from: c:\a\b\path
The relative path is relative to: c:\a\x\y\file
The relative path is: ..\..\x\y\file
참고
shlwapi.h 헤더는 PATHRelativePathTo를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional, Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | shlwapi.h |
라이브러리 | Shlwapi.lib |
DLL | Shlwapi.dll(버전 4.71 이상) |