[iOS 응용 개발] 파일을 추상화하는 구조체 만들기(7)

10097 단어 iOSSwiftXcodetech
안녕하세요.
Zenn에서는 제가 평소에 사용하던 iOS 애플리케이션에서 개발한 Tips 같은 것을 써냈으면 좋겠다고 생각했어요.
이번 스위프트는 지루해지기 쉬운 파일을 간단하게 조작하기 위해'파일을 추상화하는 구조체'를 만들었다.
이 기사만 끝나는 게 아니라 계속 할 예정이니 잘 부탁드립니다.
지난번까지.
https://zenn.dev/nkysyuichi/articles/467ddcc1041d4e
https://zenn.dev/nkysyuichi/articles/7269df712386ed
https://zenn.dev/nkysyuichi/articles/2c44e971f7afac
https://zenn.dev/nkysyuichi/articles/bcc71f9eeabf1f
https://zenn.dev/nkysyuichi/articles/0689c909bcffb4
https://zenn.dev/nkysyuichi/articles/1ffb9ef3a0af64

파일 구성 처리


이번 조작문서 작성 처리
작업 파일은 기본적으로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
    }
}
는 모바일 응용 프로그램의 이름 바꾸기 방법도 정의했다.이름 바꾸기는 '같은 디렉터리로 파일 이동' 으로 처리됩니다.

총결산

  • 파일 삭제, 복사, 이동 가능
  • 이동을 적용하여 이름 바꾸기
  • 따라서 파일 조작도 간단해졌다.
    그럼 안녕히 계세요.

    좋은 웹페이지 즐겨찾기