Für eine App, die seit vielen Jahren existiert und die klassischen Alias-Datensätze in Dateien gespeichert hat, möchte ich jetzt Alias-Dateien neu erstellen, die auf die gleiche Datei verweisen, ohne um den Alias zuerst zu beheben (weil das Ziel in diesem Moment möglicherweise nicht verfügbar ist).Erstelle eine Bookmark-Datei aus einem klassischen Mac Alias-Datensatz
Angeblich soll dies soll dies erreichen:
CFDataRef aliasRecord = ... ; // contains the Alias Record data, see below for an example
CFURLRef url = ... ; // initialized with a file URL
CFDataRef bmData = CFURLCreateBookmarkDataFromAliasRecord (NULL, aliasRecord);
CFError error;
bool ok = CFURLWriteBookmarkDataToFile (bmData, url, 0, &error);
jedoch die Schreibfunktion schlägt fehl, und der Fehler sagt: „Die Datei kann nicht gespeichert werden.“
Wenn ich stattdessen Lesezeichen Daten mit CreateBookmarkData
erstellen, ist der Schreibvorgang erfolgreich.
Wie mache ich das? Ich würde versuchen, eine Alias-Datei im alten Stil mit den Daten in der Resource Fork zu schreiben, wenn das nicht so absolut veraltet war.
Hier ist ein Beispiel Alias-Datensatz, den ich im AliasRecord-Objekt haben würde - ich kann dies mit dem klassischen Alias-Manager FSResolveAlias
Funktion lösen, so dass ich weiß, dass es tatsächlich gültig ist.
00 00 00 00 01 12 00 02 00 01 06 54 54 73 4D 42
50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 CC 31 2F 12 48 2B 00 00 01 A5
F3 9B 03 74 6D 70 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 01 AC 1C 67 D1 FE B7 D0 00 00 00 00 00 00
00 00 FF FF FF FF 00 00 09 20 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 07 70 72 69 76 61 74
65 00 00 10 00 08 00 00 CC 31 12 F2 00 00 00 11
00 08 00 00 D1 FE 9B B0 00 00 00 01 00 04 01 A5
F3 9B 00 02 00 13 54 54 73 4D 42 50 3A 70 72 69
76 61 74 65 3A 00 74 6D 70 00 00 0E 00 08 00 03
00 74 00 6D 00 70 00 0F 00 0E 00 06 00 54 00 54
00 73 00 4D 00 42 00 50 00 12 00 0B 70 72 69 76
61 74 65 2F 74 6D 70 00 00 13 00 01 2F 00 FF FF
00 00