13 votes

Est-ce que OS X impose une longueur de nom de fichier maximale ou une restriction de caractères?

Quelle est la longueur maximale des caractères de nom de fichier des fichiers dans OS X?

De moindre importance est de savoir si certains caractères sont autorisés / interdits en plus de toute restriction de longueur globale.

1 votes

En supposant le système de fichiers HFS+ ?

14voto

MattDMo Points 2725

De la source de toute connaissance, la taille maximale du nom de fichier dans le système de fichiers HFS+ par défaut est de 255 unités d'encodage UTF-16, donc essentiellement 255 caractères. Techniquement, n'importe quel caractère Unicode peut être utilisé, mais cela peut être limité en pratique par l'application que vous utilisez - par exemple, le caractère / est utilisé pour délimiter les répertoires dans les noms de chemin, donc il se peut que vous ne soyez pas autorisé à nommer un seul fichier stuff/things.txt, car cela signifie "le fichier things.txt dans le répertoire stuff" pour le système d'exploitation. Il existe des moyens d'"échapper" aux caractères comme / dans les noms de fichiers, mais pour un usage général, cela est déconseillé.

3 votes

Ce qui est avec le / n'est pas vrai (10.6 ici). Ce que vous ne pouvez pas utiliser est : (ancien séparateur HFS), du moins dans le Finder. La chose drôle est que le / est représenté comme : au niveau de la coquille. Une autre limitation étrange est que la longueur du chemin est limitée à 1024 octets ou caractères UTF-8, pas sûr lequel. Cela n'est pas imposé par le Finder et peut entraîner un comportement étrange.

0 votes

@PercivalUlysses Vous avez raison : est interdit sur HFS et HFS+ mais la plupart des utilisateurs UNIX sont habitués à la substitution automatique de / pour : et vice versa et ne réalisent pas que le stockage interne de HFS utilise : pour séparer les répertoires des noms de fichiers.

0 votes

@bmike Oui :) Savez-vous quelque chose de cette limite de 1024 caractères pour les chemins? Sur 10.6, ce comportement est documenté dans les fichiers d'en-tête du système, et il y a la variable PATH_MAX. Est-ce toujours le cas sur les systèmes ultérieurs?

5voto

Oskar Points 1242

Oui - vous devriez conserver les noms de fichier à 255 caractères mais les chemins peuvent être plus longs mais pas aussi longs que le permettent certains autres unix.

Le système d'exploitation de bureau OS X prend en charge dix principaux systèmes de fichiers (HFS, HFS Plus, UFS, WebDAV, UDF, FAT, SMB/CIFS, AFP, NFS et FTP) avec plusieurs variantes de certains d'entre eux. Voir le tableau 1 de l'article de developer.apple.com ci-dessous pour plus de détails:

Le système de fichiers par défaut, HFS plus prend en charge des noms de fichiers de 255 unités de codage UTF-16 et le seul caractère réservé est : qui est utilisé en interne pour indiquer un changement de répertoire par opposition à / qui est normalement réservé pour signifier un changement de répertoire plutôt que de faire partie du nom du fichier. (ok - Je crois que 0x00, le caractère nul est également interdit dans HFS+)

Par convention, les logiciels doivent utiliser des identifiants de fichier et sont responsables d'allouer suffisamment d'espace pour contenir un chemin de fichier arbitrairement long s'ils n'utilisent pas l'API standard pour naviguer dans la structure du système de fichiers afin de localiser un nom de fichier de 255 caractères.

0 votes

touch : et mkdir : fonctionnent bien

0 votes

@StefanDragnev Avez-vous regardé comment ils apparaissent dans Finder? Il y a une substitution automatique (: est le séparateur de chemin, mais le côté Unix inverse : et / dans tous les chemins)

0 votes

Remarquable. Finder montre un fichier/dossier nommé /. Xcode montre également le nom de fichier comme /. VS Code et ls affichent tous les deux le nom comme :.

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