Créer un package de fichier

Gz'

Membre actif
29 Mai 2007
761
43
39
Kuala Lumpur, Malaisie
www.ftpix.fr
Bonjour,

Je voulais savoir si à la manière d'un fichier .app il était possible de créer mon propre type de fichier du même genre qui au final n'est qu'un dossier avec d'autres fichiers dedans. J'arrive pas à trouver ça sur le net, je ne sais pas trop quoi chercher en fait.

Ce serait pour lier ces fichiers a une application java.
 
En fait tu voudrais savoir comment créer une "Image Disque"? :confused:
 
Une application Mac est en fait juste un dossier avec un nom .app si tu fais clic droit > Voir contenu du paquet (je suis pas sur en Français) on peut voir qu'il s'agit d'un simple dossier avec d'autres fichiers dedans.

Et je voudrais créer un nouveau type de fichier (ex: fichier.plop) qui soit en fait un dossier contenant d'autres fichiers mais qui soit vu par le système comme un fichier et non un dossier.
 
Ha ba ça c'est pas possible. C'est un niveau du Finder que ça se passe. Tu ne peut pas faire en sorte qu'un dossier soit affiché comme un paquet. :heu: Par contre, tu peux utiliser ".app". :up:
 
Ils ont dus marchander avec Apple... Nan, je rigole. Là, je sèche...
Attend... Tous les packages ont un dossier "Content" puis un fichier "PkgInfo" ou un "Info.plist".
Le PkgInfo de iPhoto contient
Bloc de code:
iPlbiPho
Essai par là... ;)
 
Les "paquets" sont appelés des "bundles" sous Mac OS X. Chaque fichier possède un drapeau "Bundle" (géré au niveau du gestionnaire de fichiers).

Pour passer un répertoire en bundle:
Bloc de code:
SetFile -a B monBundle

Pour retirer le drapeau Bundle:
Bloc de code:
SetFile -a b monBundle


Avec Cocoa, NSFileManager possède les méthodes nécessaires.
 
Bon, j'ai trouvé une autre solution, qui consiste a éditer le fichier info.plist de l'application "maître" qui va servir à ouvrir le bundle. il suffit de rajouter ça :

("tehhis" étant l'extension de mon bundle)

Bloc de code:
<?xml version="1.0" encoding="UTF-8"?>
<array>
	<dict>
		<key>CFBundleTypeExtensions</key>
		<array>
			<string>tehhis</string>
		</array>
		<key>CFBundleTypeIconFile</key>
		<string>tehhis</string>
		<key>CFBundleTypeName</key>
		<string>Tehhis Form</string>
		<key>CFBundleTypeRole</key>
		<string>Editor</string>
		<key>LSTypeIsPackage</key>
		<true/>
		<key>NSPersistentStoreTypeKey</key>
		<string>XML</string>
	</dict>
</array>
</plist>