PathCleanupSpec 함수(shlobj_core.h)
[PathCleanupSpec 은 요구 사항 섹션에 지정된 운영 체제에서 사용할 수 있습니다. 이후 버전에서는 변경되거나 제공되지 않을 수 있습니다.]
파일 또는 디렉터리 이름에서 잘못된 문자를 제거합니다. 긴 파일 이름을 지원하지 않는 드라이브에 8.3 파일 이름 형식을 적용합니다.
구문
int PathCleanupSpec(
[in, optional] PCWSTR pszDir,
[in, out] PWSTR pszSpec
);
매개 변수
[in, optional] pszDir
형식: PCWSTR
pszSpec에서 명명된 파일 또는 디렉터리를 포함할 디렉터리의 정규화된 경로를 포함하는 null로 종료된 버퍼에 대한 포인터입니다. 경로는 종료 null 문자를 포함하여 길이가 MAX_PATH 문자를 초과해서는 안됩니다. 이 경로는 변경되지 않습니다.
이 값은 NULL일 수 있습니다.
[in, out] pszSpec
형식: PWSTR
정리할 파일 또는 디렉터리 이름을 포함하는 null로 종료된 버퍼에 대한 포인터입니다. 파일의 경우 파일의 확장자를 포함합니다. ''은 잘못된 문자로 간주되어 제거되므로 이 버퍼는 둘 이상의 디렉터리를 포함할 수 없습니다.
종료할 때 버퍼에는 정리된 이름을 포함하는 null로 끝나는 문자열이 포함됩니다.
버퍼 오버런 가능성을 방지하려면 이 버퍼의 길이가 MAX_PATH 이상이어야 합니다.
반환 값
형식: int
다음 값 중 하나 이상을 반환합니다.
반환 코드 | 설명 |
---|---|
|
하나 이상의 잘못된 문자를 대체했습니다. |
|
하나 이상의 잘못된 문자를 제거했습니다. |
|
반환된 경로가 잘립니다. |
|
pszDir에 지정된 입력 경로가 너무 길어서 pszSpec에서 유효한 파일 이름을 만들 수 없어 함수가 실패했습니다. 이 플래그가 반환되면 항상 PCS_FATAL 플래그가 함께 제공됩니다. |
|
정리된 경로가 유효한 파일 이름이 아닙니다. 이 플래그는 항상 PCS_PATHTOOLONG 함께 반환됩니다. |
설명
다음은 모든 이름에서 잘못된 문자로 간주됩니다.
\ / : * ? " < > |
컨트롤 문자도 잘못된 것으로 간주됩니다. 긴 파일 이름이 지원되지 않으면 세미콜론(;) 및 쉼표(,) 문자도 유효하지 않습니다.
pszDir에서 명명된 드라이브는 파일 시스템에서 긴 파일 이름을 지원하는지 여부를 확인합니다. 그렇지 않으면 pszSpec 의 이름이 8.3 형식으로 잘리고 반환된 PCS_TRUNCATED 값이 됩니다. pszDir이 NULL인 경우 Windows가 설치된 드라이브는 긴 파일 이름 지원을 확인하는 데 사용됩니다.
전체 경로( pszDir 의 경로에 있는 문자 수와 pszSpec에서 정리된 이름의 문자 수)가 MAX_PATH –1(종료 null 문자를 고려)을 초과하면 함수는 PCS_PATHTOOLONG 반환합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | shlobj_core.h(Shlobj.h 포함) |
라이브러리 | Shell32.lib |
DLL | Shell32.dll(버전 5.0 이상) |