【Swift】URL で特定のディレクトリやファイルを指す

これで、URLを使って操作するファイルやディレクトリを指していきますが。


func appending<S>(
    component: S,
    directoryHint: URL.DirectoryHint = .inferFromPath
) -> URL where S : StringProtocol

👉 appending(component:directoryHint:) | Apple Developer Documentation hatena-bookmark

一つ目の引数の末尾の「/(スラッシュ)」で、

そのURLが指しているものが、

「ディレクトリなのかファイルなのか」

が変わる。

実体ではなく、指しているもの。

指す側の認識。


let home = URL.homeDirectory

let documents = URL.documentsDirectory
let documents1 = home.appending(component: "Documents/")
let documents2 = home.appending(component: "Documents", directoryHint: .isDirectory)

let documents3 = home.appending(component: "Documents")
let documents4 = home.appending(component: "Documents/", directoryHint: .notDirectory)

print(
  documents == documents1,  // true
  documents == documents2,  // true
  documents1 == documents2, // true

  documents == documents3,  // false
  documents == documents4   // false
)

2つ目の引数 directoryHint は、その指定を上書きする。

デフォルトは .inferFromPath

楽になったような、逆に混乱するような、

どうなんだろ。



関連ワード:  appleiOSiPhonemacmacOSSwift今さら聞けない初心者開発