Ich habe festgestellt, dass FSPathMakeRef()
und FSRefMakePath()
jetzt in OS X 10.8 veraltet sind.
Ich habe Code, der sie verwendet, um den kanonischen Fall für einen Pfad zu finden, z. Wenn "/ USeRs" übergeben wird, wird "/ Users" zurückgegeben.
Warum sind diese und andere verwandte Funktionen veraltet, und welche nicht veraltete API sollte nun stattdessen verwendet werden, um eine gleichwertige Funktionalität bereitzustellen?
Verwenden Sie NSURL
, um sowohl normale Pfade als auch Dateireferenzpfade zu speichern.
Aus dem Datei-Manager-Dokumentation (Anhang A: Funktionen des veralteten Datei-Managers):
FSMakeFSRefUnicode
Erstellt einen FSRef für eine Datei oder ein Verzeichnis unter Angabe eines übergeordneten Verzeichnisses und eines Unicode-Namens. (Veraltet in OS X 10.8. Verwenden Sie stattdessen NSURL- oder CFURL-APIs. Um das Verhalten von Dateisystemelementen nach ID zu verfolgen, erstellen Sie Dateireferenz-URLs mit fileReferenceURL oder CFURLCreateFileReferenceURL.)
Nach allem, was ich sagen kann, entschied sich Apple dafür, den FSRef
-Typ komplett abzulehnen und stattdessen Dateireferenz-URLs (die wie file:///.file/id=6571367.39068/
aussehen) zu bevorzugen.
Wenn Sie einen Zeichenfolgenpfad kanonisieren möchten, können Sie mit nicht veralteten APIs Folgendes ausführen:
%Vor%Tags und Links macos osx-mountain-lion deprecated