Conventions de nom de fichiers supportées par les commandes Tcl
Toutes les commandes Tcl et les fonctions C qui attendent des noms de fichier comme arguments les attendent sous une parmi trois formes, dépendantes de la plate-forme courante. Sur chaque plate-forme, Tcl supporte les noms de fichier standard de cette plate-forme. De plus, sur toutes les plates-formes, Tcl supporte une syntaxe Unix-like conçue pour fournir une manière pratique de construire des noms de fichier simples. Néanmoins, les scripts qui sont conçus pour être portables ne devront pas présumer d'une forme particulière pour les noms de fichier. Par contre, les scripts portables doivent utiliser les commandes file split et file join pour manipuler les noms de fichier (voyez la page de manuel de file pour plus de détails)
Les noms de fichier sont groupés dans trois types généraux basés sur le point de départ du chemin utilisé pour désigner le fichier: absolu, relatif, et volume-relatif. Les noms absolus sont complètement qualifiés, donnant un chemin vers le fichier relativement à un volume particulier et au répertoire racine sur ce volume. Les noms relatifs sont non-qualifiés, donnant un chemin vers le fichier relativement au répertoire de travail courant. Les noms Volume-relatif sont partiellement qualifiés, soit donnant le chemin relativement au répertoire racine sur le volume courant, ou relativement au répertoire courant du volume spécifié. La commande file pathtype peut être utilisée pour déterminer le type d'un chemin donné.
Les règles des noms natif dépendent de la valeur rapportée dans l'élément du tableau Tcl tcl_platform(platform):
Sur les systèmes Apple Macintosh, Tcl supporte deux formes de noms de chemin. Les styles normaux de noms Mac utilisent les deux points comme séparateurs de chemin Les chemins peuvent être relatifs ou absolus, et les noms de fichier peuvent contenir tout caractère autre que les deux points Un caractère deux points en tête cause l'interprétation du reste du chemin comme relatif au répertoire courant Si un chemin contient deux points qui ne sont pas en tête, alors le chemin est interprété comme un chemin absolu Des séquences de deux ou plus deux points ailleurs dans le chemin sont utilisées pour construire des chemins relatifs ou :: se réfère au parent du répertoire courant, ::: se réfère au parent du parent, et ainsi de suite. En supplément au noms style Macintosh, Tcl aussi supporte un sous ensemble de noms Unix-like Si un chemin ne contient pas les deux points, alors il est interprété comme un chemin Unix Le slash est utilisé comme séparateur de chemin Le nom de chemin . se réfère au répertoire courant, et .. se réfère au parent du répertoire courant Néanmoins, quelque noms comme / ou /.. ne sont pas assignés, et sont interprétés comme noms Macintosh En général, les commandes qui génèrent les noms de fichier renverront des noms style Macintosh, mais les commandes qui attendent des noms de fichier acceptent aussi bien les noms style Macintosh que Unix. Les exemples suivants illustrent les formes variées de noms de chemin:
Sur les plates-formes Unix, Tcl utilise des noms de chemin où les composants sont séparés par des slashes. Les noms de chemin peuvent être relatifs ou absolus, et les noms de fichier peuvent contenir tout caractère autre que le slash Les noms de fichier . et .. sont spéciaux et se réfèrent au répertoire courant et au parent du répertoire courant respectivement
Plusieurs caractères slashes adjacents sont interprété comme un seul séparateur.