SwiftUI | documentDirectory内のファイル一覧を取得する方法

SwiftUI

SwiftUIでdocumentDirectory内のファイル一覧を取得する方法を説明する。

結論

以下のコードを記述する。

let documentDirectoryのURL = FileManager.default.urls(for: .documentDirectory,
                                                      in: .userDomainMask).first!
do {
    let ファイル一覧 = try FileManager.default.contentsOfDirectory(
                                    at: documentDirectoryのURL,
                                    includingPropertiesForKeys: nil)
    print(ファイル一覧)
} catch {
    print("error")
}

具体例

  1. documentDirectoryにファイルを3つ保存する。
  2. documentDirectory内のファイル一覧を取得する。
import SwiftUI

struct ContentView: View {
    var body: some View {
        Button(action: {
            documentDirectoryにファイルを保存(ファイル名: "globe")  // ? 1
            documentDirectoryにファイルを保存(ファイル名: "pencil")  // ? 1
            documentDirectoryにファイルを保存(ファイル名: "person")  // ? 1
            
            documentDirectory内のファイル一覧を取得()  // ? 2
        }) {
            Text("ここをタップ")
        }
    }
    
    func documentDirectoryにファイルを保存(ファイル名: String) {
        let 画像 = UIImage(systemName: ファイル名)!
        do {
            let fileURL = try FileManager.default
                .url(for: .documentDirectory, 
                     in: .userDomainMask, appropriateFor: nil, create: true)
                .appendingPathComponent(ファイル名)
                .appendingPathExtension("png")
            try 画像.pngData()?.write(to: fileURL)
        } catch {
            print("エラー")
        }
    }
    
    func documentDirectory内のファイル一覧を取得() {
        let documentDirectoryのURL = FileManager.default.urls(for: .documentDirectory,
                                                            in: .userDomainMask).first!
        do {
            let ファイル一覧 = try FileManager.default.contentsOfDirectory(
                at: documentDirectoryのURL,
                includingPropertiesForKeys: nil)
            print(ファイル一覧)
        } catch {
            print("error")
        }
    }
    
}

実行するとdocumentDirectory内のファイル一覧がprintされる。

[file:///private/var/mobile/Containers/Data/Application/EC60D865-3824-4D6C-8589-AA93D9CF04B9/Documents/person.png, 
 file:///private/var/mobile/Containers/Data/Application/EC60D865-3824-4D6C-8589-AA93D9CF04B9/Documents/globe.png, 
 file:///private/var/mobile/Containers/Data/Application/EC60D865-3824-4D6C-8589-AA93D9CF04B9/Documents/pencil.png]

まとめ

SwiftUIでdocumentDirectory内のファイル一覧を取得する方法を説明した。

コメント

タイトルとURLをコピーしました