URLとファイルパス
URLベースのAPIでファイルの場所を特定します。
「URLとファイルパス」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。
URLとファイルパス
Appleプラットフォームでは、ファイルは単なる文字列ではなくURLの値で指定します。ファイルURLはファイルシステム上の場所を指します。
ファイルURL
URL(fileURLWithPath:)を使ってファイルURLを作成します。これにより、そのURLがネットワークアドレスではなくローカルファイルを表すことが示されます。
import Foundation
let url = URL(fileURLWithPath: "/tmp/data.txt")
print(url.path)
print(url.isFileURL)パスコンポーネントの追加
appendingPathComponent(_:)は、区切り文字を自動的に挿入して、安全に子パスを構築します。
import Foundation
let base = URL(fileURLWithPath: "/tmp")
let file = base.appendingPathComponent("notes.txt")
print(file.path)パス拡張子
appendingPathExtension(_:)を使ってファイルの種類を示す拡張子を追加し、pathExtensionで読み取ります。
import Foundation
let url = URL(fileURLWithPath: "/tmp/report")
.appendingPathExtension("pdf")
print(url.lastPathComponent)
print(url.pathExtension)最後のパスコンポーネント
lastPathComponentはファイルまたはフォルダーの名前を返し、deletingLastPathComponent()は親ディレクトリに移動します。
import Foundation
let url = URL(fileURLWithPath: "/Users/me/file.txt")
print(url.lastPathComponent)
print(url.deletingLastPathComponent().path)拡張子の削除
deletingPathExtension()は拡張子を取り除きます。関連するファイル名を生成する場合に便利です。
import Foundation
let url = URL(fileURLWithPath: "/tmp/image.png")
let base = url.deletingPathExtension()
print(base.lastPathComponent)最新のURLアクセサー
新しいAPIではurl.appending(path:)とurl.path()を使います。どちらも同等のファイルURLを生成します。
import Foundation
let base = URL(fileURLWithPath: "/tmp")
let child = base.appending(path: "logs/today.log")
print(child.path)URLと文字列パスの比較
APIが文字列を必要とする場合は、pathプロパティでURLを単純な文字列に変換できます。それ以外では、常にURLを優先してください。
import Foundation
let url = URL(fileURLWithPath: "/var/data")
let asString: String = url.path
print(asString)相対URL
基準URLからの相対URLを作成できます。既知のルートディレクトリを基準にパスを組み立てる場合に便利です。
import Foundation
let base = URL(fileURLWithPath: "/tmp/", isDirectory: true)
let rel = URL(fileURLWithPath: "sub/file.txt", relativeTo: base)
print(rel.absoluteURL.path)パスの標準化
standardizedFileURLは、..や.などを解決して、正規化されたクリーンなパスにします。
import Foundation
let messy = URL(fileURLWithPath: "/tmp/a/../b/file.txt")
print(messy.standardizedFileURL.path)文字列ではなくURLを使う理由
URLはパスがディレクトリかどうかを表現でき、区切り文字を処理し、FileManagerと連携できます。これに比べて、文字列のパスはエラーが発生しやすくなります。
import Foundation
let dir = URL(fileURLWithPath: "/tmp/folder", isDirectory: true)
print("Has directory path: \(dir.hasDirectoryPath)")確認問題
ファイルURL上に子パスを安全に構築するメソッドはどれですか?
まとめ
ファイルはURLとURL(fileURLWithPath:)を使って指定します。appendingPathComponentとappendingPathExtensionでパスを構築し、lastPathComponentとdeletingLastPathComponentで移動し、URLを標準化しました。次は、実際のデータの読み書きです。
よくある質問
「URLとファイルパス」レッスンは無料ですか?
はい。「URLとファイルパス」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。
「URLとファイルパス」で何を学びますか?
URLベースのAPIでファイルの場所を特定します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Swift Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「URLとファイルパス」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSwift Academyレッスンでコードを書いて実行できますか?
はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- URLとファイルパス
- データの読み書き
- ディレクトリの管理
- アプリのサンドボックスディレクトリ