PathRemoveFileSpec API는 패스와 파일명이 있는 문자열

C:\\Users\\Heungbae\\Desktop\\임시.txt


라는 것이 있을 때 파일명인 임시.txt’을 제외한

C:\\Users\\Heungbae\\Desktop

문자열을 반환합니다.

즉 파일 이름까지 있는 전체 패스에서 이름만 제외한 패스 문자열을 만들어줍니다.

 

Ansicode를 사용할 때는 PathRemoveFileSpecA, Unicode를 사용할 때는 PathRemoveFileSpecW를 사용합니다.

 

 


PathRemoveFileSpec을 사용하기 위한 조건


OS : Windows 2000 이상만 지원합니다.

필요한 파일 : Shlwapi.h

필요한 라이브러리 : Shlwapi.lib

필요한 dll : Shlwapi.dll

 

< 예제 코드 >

#include <iostream>
#include <windows.h>
#include <shlwapi.h>

int main()
{
  WCHAR szPath[_MAX_PATH + 1] = L"C:\\Users\\Heungbae\\Desktop\\임시.txt";
  WCHAR szSource[_MAX_PATH + 1];

  wcsncpy_s(szSource, _MAX_PATH, szPath, _MAX_PATH-1 );

  PathRemoveFileSpecW(szSource);

  setlocale(LC_ALL, "");
  std::wcout << L"PathRemoveFileSpec : " << szSource << std::endl;

  getchar();
  return 0;
}


< 결과 >



< 초보자를 위해서... >

위에서 사용 조건 중

필요한 라이브러리 : Shlwapi.lib

라는 부분이 있는데 이것은 프로젝트 속성창에서 아래와 같이 추가합니다.




참고
MSDN : http://msdn.microsoft.com/en-us/library/bb773748%28VS.85%29.aspx




by 흥배 2010. 9. 29. 09:00
  • 더부룩이 2010.09.29 09:20 ADDR EDIT/DEL REPLY

    추가 종속성에서 %(AdditionalDependencies) 라고 쓰셨는데, 이거 어떻게 쓰는 건가요? 궁금하네요.

    • 흥배 2010.09.29 10:08 신고 EDIT/DEL

      %(AdditionalDependencies) 이건 제가 적은게 아니고 툴이 적어준겁니다. 처음에는 gdi.lib 등이 적혀있는데 여기에 기본 설정 이외의 lib을 추가하면 %(AdditionalDependencies)로 바뀌더군요

  • 알콜코더 2010.09.29 14:57 ADDR EDIT/DEL REPLY

    호옹. 이런거 자주 썻는데. 이런게 있는지 모르고 할상 SplitPath을 사용했네요.
    좋은 정보 감사합니다.

    • 흥배 2010.09.30 00:08 신고 EDIT/DEL

      ㅎㅎ 고맙습니다. 진현이가 요즘 DX11 공부하느라 바쁘시다고 하더군요^^

| 1 |