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
-
내 나이대도 이제는 젊다고 하기에는 힘든(?) 수준으로 치닫고 있다. 세월의 흐름이 너무 빨라서 아쉽고 벅차고 숨차기는 하지만, 이럴 때 일 수록 추억을 떠올려 보면 나름 재미있는 세월을 보냈구나 생각이 든다. 이참에 옛날 옛적에 쓰던 구식 컴퓨터...
-
이 글은 새 위치 로 옮겨지며 이 곳에서는 더이상 유지보수되지 않습니다. Emacs Lisp 코드도 사람이 작성하든 AI가 작성하든 버그가 없을 수가 없다. 그 중에서 가장 사람을 괴롭히는 버그로 사용성을 떨어뜨리는 퍼포먼스 문제가 있다. 키를 하나 ...
-
스크린샷으로 결론을 이미 정리해 버렸다 이 글은 새 위치 로 옮겨지며 이 곳에서는 더이상 유지보수되지 않습니다. HTML에는 몇몇 문법에 사용되는 문자를 표기하기 위해 독특한 표기 문법을 가지고 있다. 정확히 말해서 그 상위 개념인 XML이나 SGML...
-
이 글은 새 위치 로 옮겨지며 이 곳에서는 더이상 유지보수되지 않습니다. 어느 날 또다시 찾아온 식사 메뉴 선정이라는 고뇌의 시간, 어찌하나 한참을 고민했지만 답이 나오지 않았는데 "한동안 안 먹었으니 치킨 시켜 먹을까?" 하는 생각...
-
사실 얼마 전까지만 해도 debugPrint 라는 함수가 있는지 조차 몰랐었다. 뭐 이제서라도 알게 되었으니 메모도 할겸 print 와 debugPrint 에 대한 글을 써 본다.
-
블로거(blogger 혹은 blogspot)의 단점으로 발전이 없는 테마(스킨) 기능이 있겠지만 그밖에 한국 환경에 좀 안 맞는 부분들이 있다는 점도 꼽을 수 있을 것 같다. 예를 들어 날짜 표시가 한국과는 반대로 표기되는 서양식 표기 투성이다. 이를...
-
어느날 Emacs가 기동 시 SYSTEM_WGETRC 와 관련된 에러를 리턴하면서 설정파일을 실행하다가 오류가 나기 시작했다. 이 글은 이 문제를 해결하기 위해 했던 삽질들의 기록이다.
-
assert() 라는 함수는 C언어 시절 부터 예기치 못한 에러를 잡기 위한 무기(?)로써 활용되어 왔다. 문제가 생길 것 같으면 일부러 자살(?)하기 위한 무기가 바로 assert()이다.
-
Emacs에선 C-s 나 C-r 로 파일 내 검색을 할 수 있는데 이 때 검색 전의 위치로 돌아오는 명령이 있는지 없는지 모르겠다. 찾는것도 귀찮고 해서 이 기능을 만들어 봤다. 아래가 소스 코드이다.
-
간만에 쓰는 글이 쓸 모 없는 요상한 글이라 찝찝(?)하긴 하지만, 반휴면상태로 보이는 블로그가 살아있다는 표식으로 글을 남겨본다. T^ T. 이 글은 팁이나 가이드가 아니라 일기이다. 현재 사용 중인 맥은 맥북프로 2009LATE, 아이맥 201...
0 comments:
댓글 쓰기