ディレクトリの管理
ディレクトリを作成、一覧表示、削除します。
「ディレクトリの管理」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。
ディレクトリの管理
FileManagerは、ファイルやフォルダーの作成、一覧表示、移動、削除を行うための中心的なオブジェクトです。
共有FileManager
ほとんどの操作ではFileManager.defaultを使います。これはスレッドセーフな共有インスタンスを提供します。
import Foundation
let fm = FileManager.default
print("Got the default file manager")ディレクトリの作成
createDirectory(at:withIntermediateDirectories:)はフォルダーを作成します。必要に応じて、存在しない親ディレクトリも作成できます。
import Foundation
let fm = FileManager.default
let dir = URL(fileURLWithPath: "/tmp/myapp/cache")
try? fm.createDirectory(at: dir, withIntermediateDirectories: true)
print("Directory created")存在の確認
fileExists(atPath:)はパスが存在するかどうかを返し、inoutフラグによってそれがディレクトリかどうかも確認できます。
import Foundation
let fm = FileManager.default
var isDir: ObjCBool = false
let exists = fm.fileExists(atPath: "/tmp", isDirectory: &isDir)
print("Exists: \(exists), isDir: \(isDir.boolValue)")内容の一覧表示
contentsOfDirectory(at:includingPropertiesForKeys:)は、フォルダ内にあるURLを返します。
import Foundation
let fm = FileManager.default
let dir = URL(fileURLWithPath: "/tmp")
if let items = try? fm.contentsOfDirectory(at: dir, includingPropertiesForKeys: nil) {
print("Item count: \(items.count)")
}名前だけの一覧表示
完全なURLが必要ない場合は、パスベースのcontentsOfDirectory(atPath:)を使うと、単純なファイル名の文字列が返されます。
import Foundation
let fm = FileManager.default
if let names = try? fm.contentsOfDirectory(atPath: "/tmp") {
print("Names count: \(names.count)")
}項目の削除
removeItem(at:)は、ファイルまたはディレクトリツリー全体を削除します。使用には注意が必要です。
import Foundation
let fm = FileManager.default
let url = URL(fileURLWithPath: "/tmp/myapp/cache/old.txt")
try? fm.removeItem(at: url)
print("Removed item if it existed")移動と名前変更
moveItem(at:to:)は項目を移動または名前変更し、copyItem(at:to:)はファイルを複製します。
import Foundation
let fm = FileManager.default
let src = URL(fileURLWithPath: "/tmp/a.txt")
let dst = URL(fileURLWithPath: "/tmp/b.txt")
try? fm.moveItem(at: src, to: dst)
print("Moved if source existed")深い階層の列挙
FileManager.DirectoryEnumeratorはサブツリー全体を再帰的に走査し、ネストされたすべてのURLを順に返します。
import Foundation
let fm = FileManager.default
let root = URL(fileURLWithPath: "/tmp")
if let e = fm.enumerator(at: root, includingPropertiesForKeys: nil) {
var count = 0
for case _ as URL in e { count += 1; if count > 5 { break } }
print("Walked some entries: \(count)")
}ファイル属性
attributesOfItem(atPath:)は、サイズや変更日時などのメタデータを辞書で返します。
import Foundation
let fm = FileManager.default
if let attrs = try? fm.attributesOfItem(atPath: "/tmp"),
let size = attrs[.size] {
print("Has size attribute: \(size)")
}失敗への対処
ディレクトリ操作は、権限エラーやパスが存在しない場合にエラーをスローします。do/catchで囲み、適切に対処してください。
import Foundation
let fm = FileManager.default
do {
try fm.removeItem(at: URL(fileURLWithPath: "/no/such/file"))
} catch {
print("Remove failed: \(error.localizedDescription)")
}確認問題
createDirectoryで、存在しない親フォルダも作成するにはどのオプションを指定しますか。
まとめ
FileManager.defaultでは、createDirectoryでフォルダを作成し、fileExistsで存在を確認し、contentsOfDirectoryで一覧を取得し、removeItemで削除し、項目を移動またはコピーできます。サブツリーの列挙と属性の読み取りも行いました。次は、アプリのサンドボックスディレクトリです。
よくある質問
「ディレクトリの管理」レッスンは無料ですか?
はい。「ディレクトリの管理」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。
「ディレクトリの管理」で何を学びますか?
ディレクトリを作成、一覧表示、削除します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Swift Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「ディレクトリの管理」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSwift Academyレッスンでコードを書いて実行できますか?
はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- URLとファイルパス
- データの読み書き
- ディレクトリの管理
- アプリのサンドボックスディレクトリ