Die URL-Methode resourceValues(forKeys:) lässt sich dazu verwenden, um herauszufinden, ob es sich bei der angegebenen URL um ein Alias (d. h., keinen Symlink) handelt. Der nachfolgende Code erweitert die URL-Klasse um die Methode isAlias, die einen optionalen Booleschen Wert zurückliefert.
extension URL {
func isAlias() -> Bool? {
let values = try? url.resourceValues(forKeys: [.isSymbolicLinkKey, .isAliasFileKey])
let alias = values?.isAliasFile
let symbolic = values?.isSymbolicLink
guard alias != nil, symbolic != nil else { return nil }
if alias! && !symbolic! {
return true
}
return false
}
}
func isAlias() -> Bool? {
let values = try? url.resourceValues(forKeys: [.isSymbolicLinkKey, .isAliasFileKey])
let alias = values?.isAliasFile
let symbolic = values?.isSymbolicLink
guard alias != nil, symbolic != nil else { return nil }
if alias! && !symbolic! {
return true
}
return false
}
}
Erläuterung: Bei einem Alias liefert resourceValues(forKeys:) den Wert true für den Key .isAliasFileKey und den Wert false für den Key .isSymbolicLinkKey. Wenn die URL nicht existiert, liefert isAlias() den Wert nil zurück.
Neueste Kommentare