BNDL (Bundle) est une ressource établissant le lien entre les applications, les types de documents et les icônes associées à ces types. Ces icônes seront utilisées par le Finder et ces liens seront invoqués lors d'un double-clic ou d'un glisser-déposer sur l'icône d'un document.

Tout fichier est caractérisé par un type et un créateur.

- Le Type : Il définit le contenu du fichier (APPL est une application, PICT est une image, TEXT est un fichier de texte sans enrichissement typographique...).Chaque application définit un ou plusieurs types qui lui sont propres pour désigner les sortes de documents qu'elle gère.
- Le Créateur : Il désigne l'application qui a créé le fichier. Si le fichier est une application, ce champ représente sa signature. Une signature doit être unique. 2 applications n'ont pas le droit de porter la même signature, sinon le processus ne fonctionnera plus.

Le Finder peut attribuer une famille d'icônes différente à chaque couple Type-Créateur. La ressource BNDL définit ces associations. Si une application ne possède pas de ressource BNDL, elle n'aura pas d'icône personnalisée et ses documents non plus. Elle héritera alors d'une icône générique aidant à son identification.
Les associations Type-Créateur-Famille d'icônes sont stockés automatiquement dans des fichiers invisibles, gérés par le Finder, et présents sur chaque volume :

- Fichier Desktop, sous système 6 (et antérieur) et sur les disquettes quel que soit le système.
- Fichiers Desktop DB et Desktop DF, sous système 7 et supérieur.

Si on apporte des modifications à une ressource BNDL, il faut donc ensuite reconstruire le Bureau (Option + Commande au démarrage).

Le fichier Desktop est composé de ressources, mais les fichiers Desktop DB et DF ne contient qu'un Data Fork.

Il existe toujours autant de ressources de type 'FREF' que de types dans une ressource 'BNDL'.

Quelques commentaires :

• La famille d'icônes associée au type 'APPL' représente l'icône de l'application.
• ResEdit affecte la même icône aux types RSRC et rsrc, car ces 2 types représentent la même chose.
• Le type 'ssrc' désigne un fichier modèle (qui n'est pas verrouillé, mais ne doit pas être modifié).
• 2 fichiers de même type peuvent avoir des icônes différentes si elles ont été créées par 2 applications différentes.
• Le type '****' signifie que l'application peut ouvrir tous les types de fichiers (inutile de lui associer des icônes).

Note : Il ne faut pas confondre Type de fichier et Type de ressource. Certains formats sont identiques (TEXT) ou très similaires (PICT) mais dans la plupart des cas, ils n'ont strictement rien à voir.

Quelques types de fichiers répandus ou utilisés par le système :

adev Extension réseau kfil Clavier
AIFC Son (format AIFF-C) lttr Lettre PowerTalk
AIFF Son (format AIFF) LWFN Police PostScript
appe Application Tâche de fond seule Midi Instructions MIDI (QuickTime 2)
APPL Application MooV Séquence QuickTime
cbnd Outil de connexion msam Passerelle messagerie PowerTalk
cdev Tableau de bord osas Script AppleScript
clpp Extrait image (glisser-déposer) pdvr Pilote d'impression QD GX
clps Extrait son (glisser-déposer) pext Extension d'impression QD GX
clpt Extrait texte (glisser-déposer) PICT Image QuickDraw
csam Service répertoire et messagerie pref Fichier de préférences
dfil Accessoire de bureau PRER Pilote d'imprimante
DFIL Valise d'accessoires de bureau qery Fichier de requête
dsam Service de répertoire PowerTalk RDEV Extension Sélecteur
edtp Edition (données graphiques) scri Extension pour système d'écriture
edts Edition (données sonores) sdev Extension Control Strip
edtt Edition (données textuelles) sfil Son (ressource 'snd')
fbnd Outil de transfert de fichier sjob Document PDD
fext Extension du Finder tbnd Outil d'émulation de Terminal
ffil Police de caractères bitmap TEXT Suite de caractères ASCII
FFIL Valise de polices de caractères tfil Police TrueType
help Guide Apple thng Composant (Component Mgr)
ifil Système d'écriture ttro Texte en lecture seule
INIT Extension Système zsys Fichier système

Certains types génériques n'ont pas besoin d'être associé à une famille d'icônes. C'est le cas, par exemple, pour les types ****, fold, disk et ltr*.
Si une application est capable d'ouvrir le type personnel d'une autre application mais pas d'en créer, elle peut citer ce type dans ressource BNDL sans lui associer de famille d'icônes. Toutefois, en présence d'Easy Open, une ressource 'open' fera beaucoup mieux l'affaire.

Lorsqu'une application sait gérer les documents 'modèles', elle distingue leur type par la première lettre du code qui doit être un 's'. Donc, si elle gère les documents TEXT et PICT, elle définira les types sEXT et sICT comme types modèle et leur associera une icône distinctive.

Pour assurer l'unicité de la signature d'une application et la définition d'un type donné, signatures et types doivent être enregistrés auprès d'Apple, qui centralise tout dans une base de données unique, à Cupertino.

Une application pourra utiliser comme type de fichier personnel, le même code que sa signature ou le type générique '????' si ses documents ont un format sans intérêt.

Les modifications les plus courantes, sont l'édition des icônes ou l'ajout d'icônes en couleurs, si l'application a omis de le faire. Dans ResEdit, un double-clic sur l'icône fait apparaître l'éditeur d'icônes.

Quelques autres particularités intéressantes :

• Si un fichier possède une ressource BNDL, le Finder Flag correspondant doit être coché (Menu File / Get info for...) mais si le fichier n'en possède pas, le Finder Flag ne doit pas être coché sous peine de provoquer une belle pagaille dans le Finder.

• Une ressource de type exactement égal à la signature du fichier et d'ID 0 doit exister dans le fichier (voir SIGN).
• Un fichier ne comporte pas de ressources BNDL sauf cas exceptionnel...