[swift] 파일 삭제 및 복구

iOS 앱을 개발하다보면 사용자가 파일을 잘못 삭제했을 때를 대비하여 삭제된 파일을 복구할 수 있는 기능을 구현해야 할 때가 있습니다. 이 글에서는 Swift를 사용하여 iOS 앱에서 파일을 삭제하고 복구하는 방법에 대해 알아보겠습니다.

파일 삭제

iOS에서는 파일 시스템에 직접적으로 접근할 수 없고 앱 내부 또는 외부 저장소에만 접근할 수 있습니다. 따라서 앱 내부 또는 외부 저장소에서 파일을 삭제해야 합니다.

다음은 앱 내부 저장소에서 파일을 삭제하는 예제 코드입니다.

let fileManager = FileManager.default
let documentsURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first!
let fileURL = documentsURL.appendingPathComponent("example.txt")

do {
    try fileManager.removeItem(at: fileURL)
    print("파일이 성공적으로 삭제되었습니다")
} catch {
    print("파일 삭제 실패: \(error)")
}

위의 코드에서는 FileManager를 사용하여 문서 디렉토리에서 “example.txt” 파일을 삭제하는 방법을 보여줍니다.

외부 저장소에서 파일을 삭제하기 위해서는 앱의 권한을 받아야 하며, 이를 위해 권한 요청 및 처리 과정이 필요합니다.

파일 복구

사용자가 실수로 파일을 삭제했을 경우를 대비하여 파일을 복구할 수 있는 기능을 구현해야 합니다. iOS에서는 사용자가 삭제한 파일을 복구할 수 있는 복구통이 제공되지 않기 때문에 앱 내부에 삭제된 파일을 복구할 수 있는 기능을 구현해야 합니다.

아래는 앱 내부 저장소에서 파일을 복구하는 예제 코드입니다.

let originalFileURL: URL // 삭제된 파일의 URL
let backupFileURL: URL // 백업된 파일의 URL

let fileManager = FileManager.default

do {
    try fileManager.copyItem(at: backupFileURL, to: originalFileURL)
    print("파일이 복구되었습니다")
} catch {
    print("파일 복구 실패: \(error)")
}

위의 코드에서는 FileManager를 사용하여 백업된 파일을 삭제된 파일의 경로로 복사하는 방법을 보여줍니다.

결론

iOS 앱에서 파일을 삭제하고 복구하는 방법을 살펴보았습니다. 파일을 삭제할 때에는 사용자의 데이터를 신중하게 다루어야 하며, 파일을 복구할 수 있는 기능을 제공하여 사용자 경험을 향상시킬 수 있습니다.

참고 문헌:

이상으로 파일 삭제 및 복구에 대한 블로그 포스트를 마치겠습니다.