“`html

Swift 檔案下載 📥 2025 最新方法與最佳實踐

在開發 iOS App 時,開發者常常需要從伺服器下載檔案。從 Swift 5.7 開始,使用 URLSession 進行檔案下載變得更加簡單且高效。本文將介紹如何使用 URLSession 進行檔案下載,並提供實作範例及錯誤處理的最佳實踐。

基本檔案下載範例

下面是一個簡單的範例,展示如何下載檔案並在完成時讀取其內容:

let url = URL(string: "https://example.com/file.zip")!
let task = URLSession.shared.downloadTask(with: url) { localURL, urlResponse, error in
    if let error = error {
        print("下載失敗: \(error.localizedDescription)")
        return
    }
    guard let localURL = localURL else {
        print("無法獲取本地檔案路徑")
        return
    }
    do {
        let content = try String(contentsOf: localURL)
        print("檔案內容:\n\(content)")
    } catch {
        print("讀取檔案內容失敗: \(error.localizedDescription)")
    }
}
task.resume()

儲存檔案到本地

如果您想將下載的檔案儲存到本地磁碟,您可以使用以下程式碼:

let url = URL(string: "https://example.com/file.zip")!
let destination = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("file.zip")
let task = URLSession.shared.downloadTask(with: url) { localURL, urlResponse, error in
    if let error = error {
        print("下載失敗: \(error.localizedDescription)")
        return
    }
    guard let localURL = localURL else {
        print("無法獲取本地檔案路徑")
        return
    }
    do {
        try FileManager.default.moveItem(at: localURL, to: destination)
        print("檔案已儲存至: \(destination.path)")
    } catch {
        print("儲存檔案失敗: \(error.localizedDescription)")
    }
}
task.resume()

錯誤處理

在實際應用中,下載檔案時可能會遇到各種錯誤,例如網路問題或檔案不存在等。確保在下載過程中進行適當的錯誤處理,可以提高應用的穩定性。

延伸應用

您可以擴展此功能,例如,下載進度指示、在下載完成後自動開啟檔案等。這些功能能夠提升使用者體驗,使您的應用更加完善。

Swift 檔案下載 📥 更方便的檔案下載方法

Q&A(常見問題解答)

Q1: 如何檢查檔案下載是否成功?

A1: 您可以在下載任務的回調中檢查 error 參數,如果為 nil,則表示下載成功。

Q2: 如何獲取下載進度?

A2: 您可以使用 URLSessionDownloadTaskprogress 屬性來跟踪下載進度,但需要使用 URLSessionDelegate 來實現。

Q3: 我可以下載多個檔案嗎?

A3: 是的,您可以為每個檔案創建一個新的下載任務,並在需要時同時啟動多個任務。

“`

Categorized in:

Tagged in:

,