Documentフォルダにファイルを保存する
Documentフォルダの操作毎回忘れて調べているので備忘録としてまとめます。一度記事に書けば忘れないはず!
Documentフォルダ保存・読み込み
ファイルの保存
ファイルを何らかの形で取得するとData型になっているはずです、そしてData型にはwriteというメソッドが用意されています。
writeの引数に渡すURLはDocumentフォルダパス+ ファイル名で保存します。
let documentPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
//appendingPathComponentでURL型の最後に文字列を連結できる
let path_file_name = documentPath.appendingPathComponent( "hoge.zip" )
do {
let data:[UInt8] = [0x01, 0x02, 0x03]
try Data(bytes: data, count: data.count).write(to: path_file_name)
print("成功")
} catch {
print("失敗")
}
端末内に保存されたDocumentフォルダを確認するには以下の記事を参考にしてください。
AppData > Documentフォルダ直下にファイルが保存されているはずです。
読み込み
let documentPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
do {
let fileURL = documentPath.appendingPathComponent("hoge.zip")
let zipData = try Data(contentsOf: fileURL)
print("読み込み成功")
} catch{
print("読み込み失敗")
}
失敗
zipファイル自体はDocumentフォルダに作成できていたのですが、zipファイルを開くことができませんでした。
Dataをそのまま保存してもzipファイルにはなってくれないようでした。Swiftでzipファイルを作成する際はSSZipArchiveというライブラリを使うのが一般的の様です。