大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

SwiftUI沼でゆっくり浸る 郵便番号ZipのLoadと保存

著者:川上洋
公開日:2022/07/14
最終更新日:2022/07/14
カテゴリー:技術情報 雑記
タグ:

こんにちは、川上です。

サイト上の郵便番号Zipの解凍は、まず、DLかなぁ。。
ので、取り敢えず、iOSのMy機のサンドボックス先への保存です。

サンドボックス先へは、
Documents/
Library/Caches/
tmp/
ですが、今回のアプリでは、一応、Caches/ に保存するようにしました。

// == 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を保存する
のができたのでした。

// 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の解凍へ続くのでした。

ではでは。

    上に戻る