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들을 조합하면 파일 이름과 경로와 확장자 이름 등을 잘 떼어내서 요리하기 편하다.
Popular Posts
-
예전에 Vim에서 tags 파일 경로를 부모 디렉토리들로 지정해서 자동으로 태그를 지정하는 방법 을 포스팅 했던 적이 있다. 하지만 Emacs에서는 동일한 형태로 지정을 해서 사용하는게 안되었다. 이런 기능을 원했지만 검색으로 찾을 수는 없었다. ...
-
제목대로 나는 안드로이드를 혐오하는데... 그 이유를 적기 보단 경험담을 적어볼까 한다. 직접 경험한, 그리고 주변 사람들의 경험담이다. 물론 글로 표현하기 위해 과장하거나 고쳤다 -_-; [참고] 이 글은 2011년 5월 경에 쓰여진 글입니다. ...
-
메소드(Method)란 클래스에 정의된 클래스 멤버 함수를 의미한다. 스위프트(Swift)에서는 클래스 뿐만 아니라 구조체에서도 동일하게 이 메소드를 정의 할 수 있다는 특징이 있다.
-
내 나이대도 이제는 젊다고 하기에는 힘든(?) 수준으로 치닫고 있다. 세월의 흐름이 너무 빨라서 아쉽고 벅차고 숨차기는 하지만, 이럴 때 일 수록 추억을 떠올려 보면 나름 재미있는 세월을 보냈구나 생각이 든다. 이참에 옛날 옛적에 쓰던 구식 컴퓨터...
-
Vim이 강력한 편집기로써 군림하게 된 건 편한 키맵, 정규표현식, 그리고 이 매크로 레코딩 기능이 있기 때문이라고 감히 주장하고 싶다. 레코딩 기능은 사용자가 입력하는 키를 그대로 녹화해서 매크로로 만들어 주는 기능이다. 이 기능에 대해 간단히...
-
블로그 검색 유입 경로 중 동영상 플레이어에 대한 검색어가 많아서 이와 관련된 글을 하나 써 보자 한다. 주제는 개인적으로 사용해 본 Mac OS X 용 동영상 플레이어 및 소감. (내용이 길어질 것 같기에 스크린샷은 생략 ~_~)
-
이 글은 새 위치 로 옮겨지며 이 곳에서는 더이상 유지보수되지 않습니다. 어느 날 또다시 찾아온 식사 메뉴 선정이라는 고뇌의 시간, 어찌하나 한참을 고민했지만 답이 나오지 않았는데 "한동안 안 먹었으니 치킨 시켜 먹을까?" 하는 생각...
-
소프트웨어를 만들 때 메모리 관리라는 건 언어에 따라 중요성의 차이가 다르긴 하다. 하지만 왠만해서는 신경써서 작업해야 하는 것이 메모리 관리이다. 얼마나 적거나 많은 메모리를 사용하는지, 또는 어느 시점에서 메모리가 해제되면 효율적인지 등등 신경써야...
-
골프라는 스포츠는 공을 얼마나 적게 쳐서 홀에 집어넣는지를 겨루는 스포츠다. 타수를 줄여서 최대한 적게 친 순으로 순위가 메겨진다. VimGolf는 Vim으로 골프치는 것이 아니라 -_- 골프의 목적과 비슷하게 Vim으로 특정한 텍스트 프로세싱을 하는...
-
Objective-C 프로젝트에서는 자동으로 정의되는 매크로(Preprocessor Macro)가 있어서 앱이 디버그 빌드인지 파악이 가능하다. 하지만 Swift 프로젝트에서는 자동으로 생성되지 않기 때문에 수동으로 처리해야 한다. 이번 글은 이 디버...
0 comments:
댓글 쓰기