FSPathMakeRef und FSRefMakePath sind in OS X 10.8 veraltet, was sind die Alternativen?

8

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?

    
Richard Viney 29.07.2012, 12:06
quelle

1 Antwort

5

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%     
nneonneo 27.08.2012, 04:22
quelle