はじめに (対象読者・この記事でわかること)

この記事は、Swiftを使用したiOSアプリケーション開発者を対象にしているか、またはSwiftを使用してファイルシステム操作を行いたい方を対象としている。 この記事を読むことで、SwiftのFileManagerを使用してフォルダ内のファイルおよびフォルダの一覧を取得する方法がわかるようになる。 また、FileManagerのcontentsOfDirectoryを使用してファイルの一覧を取得した後、同階層内のフォルダの名称とURLを取得する方法も紹介する。

前提知識

この記事を読み進める上で、以下の知識があるとスムーズです。 - Swiftの基本的な知識 - iOSアプリケーション開発の基礎

SwiftのFileManagerについて

SwiftのFileManagerは、ファイルシステム操作を容易にするクラスである。 ファイルやフォルダの作成、削除、名前の変更、コピー、移動などの操作が可能である。 また、ファイルやフォルダの存在確認、属性の取得などの操作も可能である。

フォルダ内のファイルおよびフォルダの一覧を取得する

FileManagerのcontentsOfDirectory(at:includingPropertiesForKeys:options:)メソッドを使用して、フォルダ内のファイルおよびフォルダの一覧を取得することができる。 以下は、指定されたフォルダ内のファイルおよびフォルダの一覧を取得するサンプルコードである。

Swift
import Foundation // フォルダのURLを指定 let folderURL = URL(fileURLWithPath: "/path/to/folder") // FileManagerのインスタンスを取得 let fileManager = FileManager.default do { // フォルダ内のファイルおよびフォルダの一覧を取得 let contents = try fileManager.contentsOfDirectory(at: folderURL, includingPropertiesForKeys: nil, options: .skipsHiddenFiles) // ファイルおよびフォルダの一覧を出力 for item in contents { print(item.lastPathComponent) } } catch { print("Error: \(error)") }

このコードでは、指定されたフォルダ内のファイルおよびフォルダの一覧を取得し、各アイテムの名前を出力する。 なお、.skipsHiddenFilesオプションを使用して、隠しファイルを除外することができる。

同階層内のフォルダの名称とURLを取得する

フォルダ内のファイルおよびフォルダの一覧を取得した後、同階層内のフォルダの名称とURLを取得することができる。 以下は、同階層内のフォルダの名称とURLを取得するサンプルコードである。

Swift
import Foundation // フォルダのURLを指定 let folderURL = URL(fileURLWithPath: "/path/to/folder") // FileManagerのインスタンスを取得 let fileManager = FileManager.default do { // フォルダ内のファイルおよびフォルダの一覧を取得 let contents = try fileManager.contentsOfDirectory(at: folderURL, includingPropertiesForKeys: nil, options: .skipsHiddenFiles) // 同階層内のフォルダの一覧を取得 let folders = contents.filter { $0.hasDirectoryPath } // フォルダの一覧を出力 for folder in folders { print("Name: \(folder.lastPathComponent), URL: \(folder)") } } catch { print("Error: \(error)") }

このコードでは、フォルダ内のファイルおよびフォルダの一覧を取得した後、同階層内のフォルダの一覧を取得し、各フォルダの名前とURLを出力する。

まとめ

本記事では、SwiftのFileManagerを使用してフォルダ内のファイルおよびフォルダの一覧を取得する方法を紹介した。 また、同階層内のフォルダの名称とURLを取得する方法も紹介した。 これらの方法を使用して、ファイルシステム操作を容易に行うことができる。 今後は、より詳細なファイルシステム操作について紹介する予定である。

参考資料