[swift] Swift에서 삭제한 파일의 타임스탬프 저장하는 방법

파일을 삭제했을 때 해당 파일의 삭제 시간을 저장하는 방법은 여러 가지가 있습니다. 아래에서는 Swift와 iOS 애플리케이션 개발 환경에서 파일 삭제 시간을 저장하는 방법에 대해 설명하겠습니다.

1. NSFileCoordinator를 사용하여 타임스탬프 저장

NSFileCoordinator를 사용하여 파일 삭제 이벤트를 감지하고 해당 파일의 타임스탬프를 저장하는 방법이 있습니다. NSFilePresenter 프로토콜을 채택하여 파일에 대한 변경 사항을 모니터링할 수 있습니다. 코드 예시는 다음과 같습니다.

import Foundation

class FilePresenter: NSObject, NSFilePresenter {
    var presentedItemURL: URL?

    func presentedItemDidChange() {
        // 파일 변경 사항 감지
    }

    func accommodatePresentedItemDeletion(completionHandler: @escaping (Error?) -> Void) {
        // 파일 삭제 시 동작
        let timestamp = Date()
        UserDefaults.standard.set(timestamp, forKey: "DeletedFileTimestamp")
        completionHandler(nil)
    }
}

위의 예시 코드는 NSFilePresenter 프로토콜을 사용하여 파일 삭제 이벤트를 감지하고, 해당 파일의 삭제 시간을 UserDefaults에 저장하는 방법을 보여줍니다.

2. NotificationCenter를 활용하여 타임스탬프 저장

파일 삭제 이벤트를 NotificationCenter를 통해 감지하고, 타임스탬프를 저장할 수도 있습니다. 파일 관련 이벤트를 모니터링하는 NotificationCenter 옵저버를 추가하여 파일 삭제 시 동작을 구현할 수 있습니다.

func configureFileDeleteObserver() {
    NotificationCenter.default.addObserver(forName: .NSFileHandleReadToEndOfFileCompletion, object: nil, queue: nil) { notification in
        if let url = notification.userInfo?[NSURLErrorKey] as? URL {
            let timestamp = Date()
            UserDefaults.standard.set(timestamp, forKey: "DeletedFileTimestamp")
        }
    }
}

위의 예시 코드는 NotificationCenter를 사용하여 파일 삭제 이벤트를 감지하고, 해당 파일의 삭제 시간을 UserDefaults에 저장하는 방법을 보여줍니다.

이러한 방법들을 통해 Swift 애플리케이션에서 파일 삭제 시간을 저장할 수 있습니다. 파일 삭제 이벤트를 모니터링하여 삭제된 파일의 타임스탬프를 기록하는 방법을 사용자 정의하고 특정 동작을 수행할 수 있습니다.

더 많은 정보는 NSFileCoordinatorNotificationCenter 문서를 참조하시기 바랍니다.