ファイルやディレクトリを操作していると、
パスの確認をしますよね。
例えば、
let documents = URL.documentsDirectory
としておいて、
print(documents.path)
あれ、Deprecated ですか。
print(documents.path())
として表示すると、
/Users/me/Library/Developer/Xcode/UserData/Previews/Simulator Devices/AA651DE-1A5C-4AA0-80D0-ADC0FF5AA467/data/Containers/Data/Application/35DFAAB4-E576-4318-9F17-DEC9F0DA259A/Documents
長い、長すぎる。
なんせ URL.homeDirectory
までが長すぎる。
ファイル操作ごときが、
なぜか辛く感じるのは、
これのせいでしょうか。
短縮形のエクステンソン作ります。
ただの置換です。
extension URL {
func shortPath(percentEncoded: Bool = true) -> String {
path(percentEncoded: percentEncoded)
.replacingOccurrences(
of: URL.homeDirectory.path(percentEncoded: percentEncoded),
with: "/HOME/"
)
}
}
いくつかの URL で確認。
print(documents.shortPath())
// /HOME/Documents/
print(
documents
.appending(component: "Documents and Settings/")
.shortPath()
)
// /HOME/Documents/Documents%20and%20Settings/
print(
documents
.appending(component: "Documents and Settings", directoryHint: .isDirectory)
.shortPath(percentEncoded: false)
)
// /HOME/Documents/Documents and Settings/
これで、ログウィンドウがスッキリしました!
ごときが !
🤔 参考
👉 【Swift】URL で特定のディレクトリやファイルを指す
【Swift】FileManager を簡単に使いたい
👉 https://t.co/OSjsaovat9#Swift #SwiftUI pic.twitter.com/yhn1wdUYYm— chanzmao (@maochanz) June 7, 2024