다음을 통해 공유


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

다음 값 중 하나 이상을 반환합니다.

반환 코드 설명
PCS_REPLACEDCHAR
하나 이상의 잘못된 문자를 대체했습니다.
PCS_REMOVEDCHAR
하나 이상의 잘못된 문자를 제거했습니다.
PCS_TRUNCATED
반환된 경로가 잘립니다.
PCS_PATHTOOLONG
pszDir에 지정된 입력 경로가 너무 길어서 pszSpec에서 유효한 파일 이름을 만들 수 없어 함수가 실패했습니다. 이 플래그가 반환되면 항상 PCS_FATAL 플래그가 함께 제공됩니다.
PCS_FATAL
정리된 경로가 유효한 파일 이름이 아닙니다. 이 플래그는 항상 PCS_PATHTOOLONG 함께 반환됩니다.

설명

다음은 모든 이름에서 잘못된 문자로 간주됩니다.

\ / : * ? " < > |

컨트롤 문자도 잘못된 것으로 간주됩니다. 긴 파일 이름이 지원되지 않으면 세미콜론(;) 및 쉼표(,) 문자도 유효하지 않습니다.

pszDir에서 명명된 드라이브는 파일 시스템에서 긴 파일 이름을 지원하는지 여부를 확인합니다. 그렇지 않으면 pszSpec 의 이름이 8.3 형식으로 잘리고 반환된 PCS_TRUNCATED 값이 됩니다. pszDirNULL인 경우 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 이상)