Was ersetzt die mittlerweile veraltete Datei Carbon.File.FSResolveAliasFile in Python unter OSX?
In Python 2 kann ich den folgenden Code verwenden, um entweder einen MacOS-Alias oder einen symbolischen Link aufzulösen:
from Carbon import File
File.FSResolveAliasFile(alias_fp, True)[0].as_pathname()
wobei alias_fp der Pfad zu der Datei ist, nach der ich neugierig bin, gespeichert als Zeichenfolge (Quelle).
Jedoch,Die Dokumentation sagt mir fröhlich, dass die gesamte Carbon-Modulfamilie veraltet ist. Was soll ich stattdessen verwenden?
EDIT: Ich glaube, der folgende Code ist ein Schritt in die richtige Richtung für den PyObjC-Ansatz. Es löst keine Aliase auf, aber es scheint sie zu erkennen.
from AppKit import NSWorkspace
def is_alias (path):
uti, err = NSWorkspace.sharedWorkspace().typeOfFile_error_(
os.path.realpath(path), None)
if err:
raise Exception(unicode(err))
else:
return "com.apple.alias-file" == uti
(Quelle)
Leider kann ich die Lösung von @ Milliways nicht zum Laufen bringen (ich weiß nichts über Cocoa) undSachen, die ich woanders im Internet finde sieht weitaus komplizierter aus (vielleicht werden alle Arten von Edge Cases behandelt?).