Mà J du Finder pour afficher les packages

CéroceCéroce Membre, Modérateur
10:25 modifié dans API AppKit #1
Pour une fois, je pose une question. Voici mon problème:

Je cherche à  enregistrer mes documents sous forme de packages. Info.plist de l'appli indique bien que ce type de document est un package. Le problème, c'est que sont créés des dossiers normaux. Du moins ils apparaissent comme tels sous le Finder.

Ce que je subodore: la version précédente de mon appli utilisait déjà  la même extension ".marquise" pour les documents, qui n'étaient pas encore des packages. À mon avis, le Finder n'a pas "reconstruit le bureau".

Savez-vous comment je pourrais l'y forcer ?
Savez-vous comment je peux savoir si le dossier est bien marqué "Package" ? Une petite commande Unix, par exemple.

Merci d'avance.

Réponses

  • AliGatorAliGator Membre, Modérateur
    10:25 modifié #2
    Salut,

    As-tu déjà  essayé de déplacer ton dossier autre part puis de le remettre à  l'endroit initial ? En général cette simple manipulation impose au Finder de revérifier le Info.plist quitte à  mettre à  jour les infos sur la base de son contenu.

    Sinon je connais la commande "SetFile" pour modifier les attributs d'un fichier ou dossier, entre autres l'attribut "Bundle" qui est celui qui t'intéresse. Il y a apparemment la commande "GetFileInfo" qui est son pendant pour interroger les attributs au lieu de les "setter". Tu pourras ainsi voir si un "GetFileInfo" sur ton fichier t'indique dans le résultat un B majuscule (bundle=YES) ou minuscule (bundle=NO)

    Et enfin, je crois que dans NSFileManager ou NSWorkspace ou dans les parages, il y a une méthode permettant de demander au Finder de forcer à  mettre à  jour ses infos pour un fichier donner... à  creuser.
  • CéroceCéroce Membre, Modérateur
    10:25 modifié #3
    Salut Ali,

    J'avais déjà  essayé la première manip, sans succès (souvenir d'un vieux vieux message "avec la réponse d'Hoksitan " c'est dire s'il est vieux).

    J'ai essayé un dernier truc avant d'appliquer ton message. Et ça marche. Le voici:
    - J'ai zippé la vieille version
    - J'ai mis l'appli vieille version à  la corbeille
    - j'ai vidé la corbeille.
    À vrai dire, j'aurais dû m'en douter. Il y a forcément un conflit entre les deux versions. L'une était la Béta 1, et l'autre la Béta 2, je ne sais pas si le Finder sait bien voir quelle est la plus récente.

    Sinon, j'ai quand même essayé GetFileInfo: ça n'a pas l'air de pouvoir dire si c'est un package. De plus, mon package est sur bureau et le bit D n'est pas positionné. Bizarre, tout ça.


    Merci beaucoup de ton aide !

  • AliGatorAliGator Membre, Modérateur
    10:25 modifié #4
    Bizarre le coup des versions parce que normalement, du moins si tu as bien positionné les données concernant les numéros de version dans tes Info.plist de chaque version de ton appli bien sûr, le Finder est capable de prendre cette info en compte il me semble.
    Et effet, il m'est déjà  arrivé d'avoir par exemple deux versions d'une même appli, et
    1) lorsque je double-clique sur un document de cette appli, c'est toujours la dernière version qui est utilisée pour ouvrir le doc, même si j'ai installé l'ancienne version après la plus récente
    2) lorsque je demande "Ouvrir avec..." dans le menu contextuel, il me propose les applis sachant ouvrir ce document, dont mes deux versions de mon appli, pour lesquelles il indique la version entre parenthèses derrière, voyant justement qu'il y a deux applis du même nom et avec le même bundleID (alors que pour les autres applications proposées pour lesquelles je n'ai qu'une version, qui n'est alors pas mentionné dans ce menu contextuel)

    Don je reste perplexe... en même temps le Finder gère sans doute pas mal d'atributs avec les versions, mais l'info qu'un type est associé au mode Bundle est peut-être une exception... (pas malin d'avoir gardé la même extension alors que ce n'est pas le même format :P)
  • CéroceCéroce Membre, Modérateur
    10:25 modifié #5
    pas malin d'avoir gardé la même extension alors que ce n'est pas le même format

    ça n'a pas d'importance, la distribution de la béta ayant été des plus confidentielles...

    Et puis maintenant que je n'utilise plus Core Data, je vois Cocoa en rose.
Connectez-vous ou Inscrivez-vous pour répondre.