다음을 통해 공유


SHSetFolderPathA 함수(shlobj_core.h)

더 이상 사용되지 않습니다. CSIDL로 식별된 시스템 폴더에 새 경로를 할당합니다.

구문

HRESULT SHSetFolderPathA(
  [in] int    csidl,
  [in] HANDLE hToken,
  [in] DWORD  dwFlags,
  [in] LPCSTR pszPath
);

매개 변수

[in] csidl

형식: int

경로를 설정할 폴더를 식별하는 CSIDL 값입니다. 실제 폴더만 유효합니다. 가상 폴더를 지정하면 이 함수가 실패합니다.

CSIDL에 CSIDL_FLAG_DONT_UNEXPAND 값을 추가하여 문자열이 제공된 대로 레지스트리에 정확하게 기록되도록 합니다. CSIDL_FLAG_DONT_UNEXPAND 플래그가 포함되지 않은 경우 경로의 일부가 %USERPROFILE%와 같은 환경 문자열로 대체될 수 있습니다.

[in] hToken

형식: HANDLE

특정 사용자를 나타내는 데 사용할 수 있는 액세스 토큰 입니다. 이 매개 변수는 일반적으로 NULL로 설정되며, 이 경우 함수는 현재 사용자의 폴더 instance 액세스하려고 합니다. 그러나 여러 사용자가 있을 수 있지만 단일 사용자에 속하는 것으로 처리되는 폴더에 대해 hToken 에 값을 할당해야 할 수 있습니다. 이 유형의 가장 일반적으로 사용되는 폴더는 Documents입니다.

호출 애플리케이션은 hToken 이 null이 아닌 경우 올바른 가장을 담당합니다. TOKEN_QUERY 및 TOKEN_IMPERSONATE 포함하여 특정 사용자에 대한 적절한 보안 권한이 있어야 하며 사용자의 레지스트리 하이브는 현재 탑재되어 있어야 합니다. 액세스 제어 문제에 대한 자세한 내용은 Access Control 참조하세요.

[in] dwFlags

형식:DWORD

예약되어 있습니다. 0으로 설정해야 합니다.

[in] pszPath

형식: LPCTSTR

폴더의 새 경로를 포함하는 길이 MAX_PATH null로 끝나는 문자열에 대한 포인터입니다. 이 값은 NULL일 수 없으며 문자열 길이는 0일 수 없습니다.

반환 값

형식: HRESULT

다음을 포함하여 표준 HRESULT 코드를 반환합니다.

반환 코드 Description
S_OK
폴더의 경로가 업데이트되었습니다.
E_INVALIDARG
몇 가지 오류 조건으로 인해 다음을 포함하여 이 값이 반환됩니다.
  • csidl 값이 잘못되었습니다.
  • csidl 값은 가상 폴더를 참조하지 않습니다.
  • csidl 값은 시스템 폴더를 참조하지 않습니다.
  • csidl 값은 이름을 바꾸거나 이동할 수 없는 폴더를 나타냅니다.
  • dwFlags 값은 0이 아닙니다.
  • pszPath 값은 NULL입니다.
  • pszPath 값이 가리키는 문자열은 길이가 0인 빈 문자열("")입니다.

설명

참고 Windows Vista를 기준으로 이 함수는 SHSetKnownFolderPath에 대한 래퍼일 뿐입니다. CSIDL 값은 연결된 KNOWNFOLDERID 로 변환되고 SHSetKnownFolderPath 가 호출됩니다. 새 애플리케이션은 이전 버전과의 호환성을 위해서만 지원되는 이전 CSIDL 시스템 대신 알려진 폴더 시스템을 사용해야 합니다.
 
SHSetFolderPath 는 Shell32.dll 이름으로 내보내지지 않습니다. 함수를 사용하려면 함수 포인터를 가져오려면 SHSetFolderPathA(ANSI 문자열의 경우) 서수 231과 함께 GetProcAddress를 호출하거나 SHSetFolderPathW(유니코드 문자열의 경우)의 서수 232를 호출해야 합니다.

폴더 이름에 ANSI에서 표현할 수 없는 유니코드 문자가 포함될 수 있으므로 경로를 유니코드 문자열로 표현하는 것이 좋습니다.

참고

shlobj_core.h 헤더는 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 SHSetFolderPath를 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 shlobj_core.h(Shlobj.h, Shlobj_core.h 포함)
라이브러리 Shell32.lib
DLL Shell32.dll(버전 5.0 이상)

추가 정보

IKnownFolder::SetPath