Quelle est la longueur maximale des caractères de fichier dans OS X?
Une importance secondaire est de savoir si certains caractères sont autorisés / non autorisés en plus des restrictions de longueur globale.
macos
finder
filesystem
file
Chauncey Garrett
la source
la source
Réponses:
D'après la police de connaissances , la taille maximale du nom de fichier dans le système de fichiers HFS + par défaut est de 255 unités de codage UTF-16, soit 255 caractères. Techniquement, n'importe quel caractère unicode peut être utilisé, mais cela peut être pratiquement limité par l'application que vous utilisez. Par exemple, le
/
caractère sert à délimiter les répertoires dans les noms de chemins, de sorte que vous ne serez peut-être pas autorisé à nommer un seul fichierstuff/things.txt
. "le fichierthings.txt
dans lestuff
répertoire" du système d'exploitation. Il y a moyen de "fuir" des caractères comme/
dans les noms de fichiers, mais pour une utilisation générale, c'est découragé.la source
/
n'est pas vrai (10.6 ici). Ce que vous ne pouvez pas utiliser, c’est:
(ancien séparateur HFS), du moins dans le Finder. Ce qui/
est drôle, c’est ce qui est représenté au:
niveau de la coque. Une autre limite étrange est que la longueur du chemin est limitée à 1024 octets ou caractères UTF-8, vous ne savez pas exactement lequel. Ceci n'est pas imposé par le Finder et peut entraîner un comportement étrange.:
est interdit sur HFS et HFS + mais la plupart des utilisateurs UNIX sont habitués à la substitution automatique de / pour: et inversement et ne réalisent pas les utilisations du stockage interne de HFS: pour séparer les répertoires des noms de fichiers.PATH_MAX
variable. Toujours ainsi sur les systèmes ultérieurs?pathchk -p
pratique pour exécuter ce type de vérification de la portabilité.touch 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345
fonctionne bien. Maistouch 12345678901234567890....6
avec un caractère plus jette:File name too long
. FYItouch
crée simplement un fichier vide ou définit en fait le fichier existanttime_modified
à maintenant.Oui, vous devriez garder les noms de fichier à 255 caractères, mais les chemins peuvent être plus longs, mais pas aussi longtemps que le permet un autre unix.
Le système d'exploitation Mac OS X prend en charge dix systèmes de fichiers principaux (HFS, HFS Plus, UFS, WebDAV, UDF, FAT, SMB / CIFS, AFP, NFS et FTP) avec plusieurs variantes. Voir le tableau 1 à l'article de developer.apple.com ci-dessous pour plus de détails:
Le système de fichiers par défaut du système, HFS plus, prend en charge les noms de fichiers de 255 unités de codage UTF-16 et le seul caractère réservé
:
est utilisé en interne pour indiquer un changement de répertoire, contrairement à/
ce qui est normalement réservé pour signifier un changement de répertoire plutôt que d'appartenir au nom de. le fichier. (ok - je crois que 0x00, le caractère nul est également interdit dans HFS +)Par convention, les logiciels doivent utiliser les descripteurs de fichiers et sont responsables de l'allocation de suffisamment d'espace pour contenir un chemin de fichier arbitrairement long s'ils n'utilisent pas l'API standard pour la navigation dans la structure du système de fichiers afin de localiser un nom de fichier de 255 caractères.
la source
touch :
etmkdir :
travailler si