2013년 6월 7일 금요일

[Cocoa] NSString의 경로(path)와 관련된 기능들

NSString 은 문자열 클래스임에도 불구하고 순수 문자열의 기능을 넘어서는 다양한 기능을 제공한다. 이 중 파일이나 폴더의 경로(path)와 관련된 기능들을 소개해본다.

- (NSString *)lastPathComponent

마지막 경로의 컴포넌트 문자열을 돌려준다. 즉 경로 구분자(/)를 이용해 문자열을 분리한 다음 마지막 문자열 아이템을 돌려준다고 보면 된다. 흔히 경로에서 파일 이름만을 뽑아낼 때 이용 할 수 있다.

예를 들어 @"/foo/bar/item" 문자열에 사용하면 @"item" 이 리턴된다.


- (NSString *)stringByDeletingLastPathComponent

위의 lastPathComponent 와는 반대되는 기능으로, 마지막 컴포넌트를 제외한 경로를 문자열로 돌려준다. 파일이 어떤 경로에 있는지 파악할 때 유용하게 사용 할 수 있다.

예를 들어 @"/foo/bar/item" 문자열에 사용하면 @"/foo/bar"가 리턴된다.


- (NSString *)stringByAppendingPathComponent:(NSString *)component

경로 문자열에 component 라는 경로를 추가할 때 이용한다.

예를 들어 @"/foo/bar" 에 @"item" 을 추가하면 @"/foo/bar/item" 이 조합되는 형식이다. 슬래쉬(/)는 자동으로 추가되니 신경쓰지 않아도 되어서 편하다.


- (NSString *)pathExtension

파일의 확장자명이 리턴된다. 파일의 확장자를 알아내야 할 경우 요긴하게 사용된다.

예를 들어 @"/foo/bar/item.txt" 라는 문자열에 사용하면 @"txt" 가 리턴된다.


- (NSString *)stringByDeletingPathExtension

위의 pathExtension과 반대로, 경로에서 확장자명을 삭제한 문자열을 리턴한다. 확장자를 제외한 파일 이름을 알아내야 할 때 위의 lastPathComponent와 조합해서 사용하면 유용한다.

예를 들어 @"/foo/bar/item.txt" 라는 문자열에 사용하면 @"/foo/bar/item" 이 리턴된다.


- (NSString *)stringByAppendingPathExtension:(NSString *)extension

위의 stringByDeletingPathExtension 과 반대로 이번에는 확장자명을 추가할 때 이용한다.

예를 들어 @"/foo/bar/item"에 @"txt"를 넘기면 @"/foo/bar/item.txt"가 리턴된다. 역시나 닷(.)이 알아서 붙으니 편하다.


이상의 API들을 조합하면 파일 이름과 경로와 확장자 이름 등을 잘 떼어내서 요리하기 편하다.

댓글 없음 :