[swift] 파일 다운로드하기

파일 다운로드는 애플리케이션에서 웹에서 파일을 다운로드하고 저장하는 일반적인 작업입니다. Swift에서 파일 다운로드를 구현하는 방법을 알아보겠습니다.

URLSession을 사용하여 다운로드하기

Swift에서 파일을 다운로드하기 위해 URLSession을 사용할 수 있습니다. URLSession은 웹 요청을 만들고 보내는 데 사용되는 기능을 제공합니다. 파일 다운로드를 위해 URLSessionDownloadTask를 사용할 수 있습니다.

import Foundation

func downloadFile(fromURL url: URL, toPath path: URL) {
    let session = URLSession.shared
    let downloadTask = session.downloadTask(with: url) { (location, response, error) in
        if let location = location {
            let fileManager = FileManager.default
            do {
                try fileManager.moveItem(at: location, to: path)
                print("다운로드 완료: \(path.absoluteString)")
            } catch {
                print("파일 이동 실패: \(error.localizedDescription)")
            }
        } else if let error = error {
            print("다운로드 실패: \(error.localizedDescription)")
        }
    }
    
    downloadTask.resume()
}

위의 코드는 downloadFile(fromURL:toPath:) 함수를 정의합니다. 이 함수는 URL에서 파일을 다운로드하고 해당 파일을 지정된 경로로 이동시킵니다. URLSessionDownloadTask를 사용하여 다운로드 작업을 실행하고, 다운로드가 완료되면 해당 파일을 지정된 경로로 이동시킵니다.

파일 다운로드 예제

let fileURL = URL(string: "https://example.com/file.pdf")!
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let destinationURL = documentsURL.appendingPathComponent("file.pdf")

downloadFile(fromURL: fileURL, toPath: destinationURL)

위의 예제에서는 file.pdf라는 이름의 파일을 다운로드합니다. 파일이 다운로드되면 디바이스의 문서 디렉토리에 저장됩니다.

참고 자료