Documentディレクトリ内のファイルへアクセスする必要があったので、メモします。
Documentディレクトリのパスを取得
Documentディレクトリを検索します。
iPhone内のDocumentディレクトリを探して、そのパスを取得します。
let documentPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].absoluteString
ファイル一覧を取得
FileManager.default.contentsOfDirectory
にてディレクトリ内のファイルを全て取得できます。
ただし、取得できるのは ファイル名のみなので注意が必要です。
guard let fileNames = try? FileManager.default.contentsOfDirectory(atPath: documentPath) else {
return nil
}
ファイルのデータを取得
ファイルの中身が欲しいので、取得したファイル名とDocumentディレクトリのパスをつなげてファイルを取得します。
return fileNames.compactMap { fileName in
guard let content = try? String(contentsOfFile: documentPath + "/" + fileName, encoding: .utf8) else {
return nil
}
return content
}
まとめ
- DocumentDirectoryのパスを取得
- ファイル名の一覧を取得
- 結合してファイルの中身を取得
let documentPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].absoluteString
guard let fileNames = try? FileManager.default.contentsOfDirectory(atPath: documentPath) else {
return []
}
return fileNames.compactMap { fileName in
guard let content = try? String(contentsOfFile: documentPath + "/" + fileName, encoding: .utf8) else {
return nil
}
return content
}