Ich dachte früher, dass Ordner eine Erweiterung haben müssen, damit sie vom Finder als Pakete erkannt werden. Diese Erweiterung wird in der Info.plist der besitzenden Anwendung deklariert.Wie kennzeichne ich einen Ordner als Paket?
Offensichtlich gibt es einen anderen, eleganteren Weg, aber ich kann nicht herausfinden, wie es gemacht wird.
z. Die iPhoto-Bibliothek wird vom Finder als Paket behandelt. Aber es hat keine Erweiterung. mdls enthüllt, dass es tatsächlich "com.apple.package" in der Inhaltstyp-Baumstruktur hat. Der tatsächliche Inhaltstyp wird dynamisch zugewiesen.
Wie hat iPhoto ein solches Verzeichnis erstellt?
Historische Anmerkung: Das Bündel Bit ursprünglich für Dateien verwendet wurde, und bedeutet, dass die Datei in eine ‚BNDL‘ Ressource hatte. Der Finder würde die Bündelressource von jeder Datei lesen, die er gefunden hat und bei der das Bundle-Bit gesetzt war und das Bit nicht gesetzt war. Jetzt wird die Funktion von 'BNDL' Ressourcen von Info.plist Dateien erfüllt, und das Bundle Bit wird hauptsächlich in Verzeichnissen verwendet, wo es den Finder und die Navigationsdienste anweist, das Verzeichnis wie eine Datei zu behandeln (dh es macht das Verzeichnis ein Paket). –
Irgendein besonderer Grund, warum Sie dies auf NSWorkspace setzen? Es verwendet den "self" -Zeiger von NSWorkspace nicht. – adib
Ich denke, es sollte entweder NSWorkspace oder NSFileManager sein, um dem Rest von Cocoa zu entsprechen. Ich kann mich nicht erinnern, warum ich mich für das Erste entschieden habe. Zugegeben, seit dieser Code geschrieben wurde, könnte es auf NSURL besser sein. –