Quels sont les caractères interdits dans les noms de fichiers OS X?

Réponses:

5

? est autorisée.

Seulement 0x00 ( NUL ) et : sont interdits pour HFS +.

: cependant, dans les logiciels basés sur POSIX, /:

alt text alt text

Merci à Graham Lee qui m'a corrigé à ce sujet!

Daniel Beck
la source
4
En réalité, ':' est interdit dans HFS +, mais '/' dans la bibliothèque POSIX. Le système de fichiers virtuel Mac OS X accepte donc ':', rejette '/', mais doit les permuter lorsqu'il traite avec HFS +. C'est assez déroutant :).
4

Comme Daniel Beck l'a dit, NUL et ":" (ou "/" dans les contextes POSIX) sont interdits; Cependant, c'est plus compliqué que ça. Les noms de fichiers HFS + doivent être stockés au format UTF-8, sous une forme entièrement décomposée, avec les caractères de composition stockés dans un ordre canonique (voir tn1150 ). Donc, la réponse à votre question dépend de ce que vous entendez par "personnage":

Si vous êtes intéressé par la séquence d'octets constituant les noms de fichiers, toute séquence non valide UTF-8 (ou pas correctement décomposée) est interdite.

Si vous entendez des points de code unicode, cette règle de décomposition interdit toujours tout point représentant un caractère accentué (il doit être stocké à la place en tant que lettre de base + combinaison d’accents) (voir tn1150table ).

Gordon Davisson
la source
1
Cette réponse est trompeuse. Sur le disque, les noms de fichiers HFS + sont stockés au format UTF-16 et non UTF-8.
Chris Suter
1
De plus, les caractères ':' sont échangés avec '/'. Cependant, vous n'avez pas vraiment besoin de savoir tout cela. l'implémentation sur disque n'est pas pertinente. Tous les appels POSIX entrant et sortant du noyau utilisent UTF-8; dans ce contexte, '/' est un séparateur de chemin d'accès et ':' est autorisé et ne nécessite pas de décomposition.
Chris Suter
1
Les noms de fichiers ne sont pas non plus entièrement décomposés (NFD). HFS + utilise une variante de NFD dans laquelle certains caractères sont composés (voir Encodages de texte dans VFS et cette réponse ).
Lri
1

Selon Wikipédia, http://en.wikipedia.org/wiki/HFS_Plus tout caractère unicode est autorisé, y compris NUL. Mais de nombreuses applications vont imposer leurs propres restrictions, telles que '/', etc.

Edward Ned Harvey
la source
1
Cela ne répond pas complètement à la question comme le faisaient les autres réponses. Le système de fichiers peut très bien prendre en charge tous les caractères, mais la couche de système d'exploitation est plus compliquée. Voir les réponses de Gordon et de Daniel.
slhck