# [Swift] 첨부파일명 (이름+확장자) 분리하기 안녕하세요 __물먹고하자__ 입니다 :) 회사 일중에 원래 첨부파일을 전달받을때 __"이름", "확장자"__ 이렇게 따로 받기로 되어있는데, 간혹 "이름"에 확장자까지 들어가 있는경우가 있어서 예외처리를 하려고 합니다. 오늘은 __String 첨부파일 이름, 확장자 분리작업__ 부분 공유드립니다. 간단하니 바로 시작! --- ## 1. pathExtension 활용 > 💡 pathExtension - path에서 확장자 추출하기 iOS 2.0 이상 __(Playground에서 테스트 했습니다.)__ - 테스트 문자열들 : __["At_로그인.mov", "At_로그인.mov.mov", "At_로그인.MOV", "At_로그인.Mov", "At_.최종.mov", "At_.MOV.최종.mov"]__ >> __결과 : At_로그인, At_.최종, At_.MOV.최종__ ``` swift import Foundation func extractFileName(from fileName: String, withExtension ext: String) -> String { // 지정된 확장자를 소문자로 변환 let targetExtension = ext.lowercased() var baseName = fileName var fileExtension = (baseName as NSString).pathExtension.lowercased() // 지정된 확장자와 일치하면 반복적으로 확장자를 제거 while fileExtension == targetExtension { baseName = (baseName as NSString).deletingPathExtension fileExtension = (baseName as NSString).pathExtension.lowercased() } return baseName } // 테스트 케이스 let fileName1 = "At_로그인.mov" let fileName2 = "At_로그인.mov.mov" let fileName3 = "At_로그인.MOV" let fileName4 = "At_로그인.Mov" let fileName5 = "At_.최종.mov" let fileName6 = "At_.MOV.최종.mov" let printArray = [fileName1, fileName2, fileName3, fileName4, fileName5, fileName6] printArray.forEach { print(extractFileName(from: $0, withExtension: "mov")) } ``` --- ## 마무리 테스트 했을때 __이름에 .이 들어간 경우__ (물론.. 이상한 케이스임) 테스트 하였고, 위에 처음 지정된 확장자일때(대소문자확인) 그부분만 제거하도록 코드를 구성하였습니다. 앱 운영하다보면 언제나(?) 예상밖인 부분이 워낙 많다 보니 개발자가 2중으로 체크해야하는 일이 많아지네요 오늘은 이만~ 즐거운 코딩 되게요. 끝.
댓글
댓글 쓰기