web-dev-qa-db-ja.com

Swift 4を使用してアプリにファイルを保存/ロードします

私のアプリはファイル(.txtファイルなど)とそのファイルをカタログ化するディレクトリを作成する必要があります。これらは電話に保存する必要があります。アプリを実行すると、特定のディレクトリと、内部に保存される特定の.txtファイルが作成されます。

私はAndroid Studioから来て、それを行うのは非常に簡単ですが、ここSwift私は方法を見つけることができません。

私はこれで試します:

// Save data to file
let fileName = "Test"
let DocumentDirURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)

let fileURL = DocumentDirURL.appendingPathComponent(fileName).appendingPathExtension("txt")

アプリが起動時に作成した場合、ファイルは利用可能です。

それらの行をコメント化してそのファイルの存在を確認すると、失敗します。

なにか提案を?間違ったクラスを使用していると思いますが、他に何も見つかりません。

6
Zelota91

実際にファイルを書き込む必要があります。

import UIKit

let fileName = "Test"
let DocumentDirURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)

let fileURL = DocumentDirURL.appendingPathComponent(fileName).appendingPathExtension("txt")

let text = "my text for my text file"
do {
    try text.write(to: fileURL, atomically: true, encoding: .utf8)
} catch {
    print("failed with error: \(error)")
}

do {
    let text2 = try String(contentsOf: fileURL, encoding: .utf8)
    print("Read back text: \(text2)")
}
catch {
    print("failed with error: \(error)")
}
6