[iOS 응용 개발] 파일을 추상화하는 구조체 만들기(7)
Zenn에서는 제가 평소에 사용하던 iOS 애플리케이션에서 개발한 Tips 같은 것을 써냈으면 좋겠다고 생각했어요.
이번 스위프트는 지루해지기 쉬운 파일을 간단하게 조작하기 위해'파일을 추상화하는 구조체'를 만들었다.
이 기사만 끝나는 게 아니라 계속 할 예정이니 잘 부탁드립니다.
지난번까지.
파일 구성 처리
이번 조작문서 작성 처리
작업 파일은 기본적으로throws를 추가해야 합니다.조작하고 싶을 때 예외 처리를 잘 고려했기 때문이다.
파일 삭제
extension File {
func delete() throws {
try FileManager.default.removeItem(atPath: path)
}
}
간단하게 포장FileManager
의 삭제 처리.사용법
이렇게 하면 매우 간단하고 명쾌하다.
let file = File(path: "path/to/")
try? file.delete()
디렉토리의 모든 파일 삭제
extension File {
func deleteAllChildren() throws {
try files.forEach { file in
try file.delete()
}
}
}
지난번에 만든 files
를 사용하여 디렉터리에 있는 모든 파일을 삭제하려고 시도합니다.스케줄러: 방법명이 불안한데...파일 복사
extension File {
func copy(to destination: File, force: Bool = true) throws {
if force && destination.exists {
try destination.delete()
}
try FileManager.default.copyItem(atPath: path, toPath: destination.path)
}
}
이것도 FileManager
의 랩인데 단순히 복제만 한다면 복제 목표가 존재하면 오류가 발생할 수 있다.사용자가 이 오류를 누릴 수 있는지 선택할 수 있도록 '강제 복사 여부' 의 파라미터를 제출할 수 있습니다.
강제로 복사할 때 복사된 대상 파일을 삭제한 후에 복사하면 상술한 오류를 피할 수 있습니다.
파일 이동
extension File {
func move(to destination: File, force: Bool = true) throws {
if force && destination.exists {
try destination.delete()
}
try FileManager.default.moveItem(atPath: path, toPath: destination.path)
}
}
는 복사와 거의 같다.이동이므로 원래 경로의 파일이 삭제됩니다.파일 이름 바꾸기
extension File {
func rename(to name: String, force: Bool = true) throws -> File {
let destination = File(path: parentDirectoryPath) + name
try move(to: destination, force: force)
return destination
}
}
는 모바일 응용 프로그램의 이름 바꾸기 방법도 정의했다.이름 바꾸기는 '같은 디렉터리로 파일 이동' 으로 처리됩니다.총결산
그럼 안녕히 계세요.
Reference
이 문제에 관하여([iOS 응용 개발] 파일을 추상화하는 구조체 만들기(7)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/nkysyuichi/articles/03043bbcb1939a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)