1 votes

Est-il possible de faire en sorte qu'un dossier ait l'apparence et le comportement d'un fichier?

Je développe une application de bureau qui enregistre ses projets sur disque. Les projets contiennent plusieurs fichiers, comme json et jpg, etc.

Solution actuelle : fichier compressé

Je les "compresse" tous ensemble dans un fichier unique. Exemple :

nom_fichier.projet           <- fichier zip compressé
  manifest.json              <- contenu compressé
  fichier1.jpg                 

Solution idéale : dossier non compressé

Je me demande s'il est possible de sortir les données, non compressées, vers un dossier à la place, et de configurer d'une manière ou d'une autre mon système d'exploitation pour traiter ce dossier comme un seul fichier. Exemple :

nom_fichier.projet           <- dossier, mais traité comme un fichier
  manifest.json              <- contenu non compressé
  fichier1.jpg

Définition de "traité comme un seul fichier" :

  • Finder affiche une icône personnalisée
  • Un double-clic ouvre l'association de fichiers
  • Les dialogues "Ouvrir" peuvent sélectionner ce fichier

Autres exemples

Sur mon Mac, il y a 2 exemples où je vois cela se produire : - Toutes les applications apparaissent comme des fichiers .app, mais internement ce sont des dossiers que je peux explorer via Terminal - 1Password stocke sa base de mots de passe dans un dossier .agilekeychain, qui se synchronise avec Dropbox en tant que dossier, mais apparaît dans Finder comme un seul fichier.

2voto

dr.nixon Points 4692

Les informations du développeur Apple indiquent que oui, vous pouvez certainement créer votre propre package ou bundle. Il semble que vous vouliez un package.

La différence entre package et bundle est discutée ici.

Essentiellement - enregistrez votre package avec le système, afin que les dossiers avec l'extension soient affichés comme un package plutôt que comme un dossier (les informations d'application.plist doivent définir de manière appropriée la clé LSTypeIsPackage pour chacun des types de fichiers de package que vous devez créer). Ensuite, configurez votre application pour créer automatiquement (en utilisant NSFileWrapper) ou manuellement le package lui-même lors de l'enregistrement.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X