SwiftUI沼でゆっくり浸る 郵便番号ZipのLoadと保存
こんにちは、川上です。
サイト上の郵便番号Zipの解凍は、まず、DLかなぁ。。
ので、取り敢えず、iOSのMy機のサンドボックス先への保存です。
サンドボックス先へは、
・Documents/
・Library/Caches/
・tmp/
ですが、今回のアプリでは、一応、Caches/ に保存するようにしました。
1 2 3 4 5 6 | // == Documents/ let directory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) // ==Library/Caches let directory2 = FileManager.default.urls(for: .cachesDirectory, in:.userDomainMask) // === tmp/ let directory3 = FileManager.default.temporaryDirectory |
のdirectoryのPathに、
1.サイト上の郵便番号ZipFileをDLして
2.directoryのPathにファイル名(hogehoge.zip)をくっつけて、保存先Pathを作り、
3.保存先Pathで、郵便番号ZipFileを保存する
のでした。。
1.サイト上の郵便番号ZipFileをDL
”Swiftful Thinking”さんのYoutubeに無料で教示してくれているので、閲覧してみてくだされ。
ここのサイトの動画群は、SwiftUI&Swiftの方法の宝庫ですよ!!
1.サイト上の郵便番号ZipFileをDL
でData型で取得できるので、そのままで、
3.保存先Pathで、郵便番号ZipFileを保存する
のができたのでした。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | // MARK: == zip URLの取得 func getPathForDataURL (_ fname: String) -> URL? { guard let path = FileManager .default .urls(for: .cachesDirectory, in: .userDomainMask) .first? .appendingPathComponent(fname) else { print( "== 🟥 Error getting path.") return nil } return path } // == getPathForDataURL // MARK: == FileManagerでFileを保存 func saveLoadData(loaddata: Data, fname: String) { guard //let data = image.jpegData (compressionQuality: 1.0), let path = getPathForDataURL (fname) else { return //"Error getting data." } do { try loaddata.write(to: path) print( "Success saving!") } catch let error { print("== 🟥 Error savina. \(error)") } } // == saveLoadData |
で、Zipの解凍へ続くのでした。
ではでは。