0Pricing
Swift Academy · レッスン

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. URLとファイルパス
  2. データの読み書き
  3. ディレクトリの管理
  4. アプリのサンドボックスディレクトリ
← Swift Academyに戻る