12 votos

¿Exige OS X una longitud máxima de nombre de archivo o una restricción de caracteres?

¿Cuál es la longitud máxima de los caracteres del nombre de los archivos en OS X?

De importancia secundaria es si algunos caracteres están permitidos/no permitidos además de cualquier restricción de longitud general.

1 votos

¿Asumiendo el sistema de archivos HFS+?

14voto

Jihane Puntos 6

Desde la fuente de todo conocimiento El tamaño máximo de un nombre de archivo en el sistema de archivos HFS+ por defecto es de 255 unidades de codificación UTF-16, es decir, básicamente 255 caracteres. Técnicamente, se puede utilizar cualquier carácter unicode, pero esto puede estar limitado en la práctica por la aplicación que esté utilizando - por ejemplo, el / se utiliza para delimitar los directorios en los nombres de ruta, por lo que no se puede nombrar un solo archivo stuff/things.txt ya que esto significa que "el archivo things.txt en el stuff directorio" al sistema operativo. Hay formas de "escapar" de caracteres como / en los nombres de archivo, pero para el uso general se desaconseja.

3 votos

Que con la / no es cierto (10.6 aquí). Lo que no se puede utilizar es : (antiguo separador HFS), al menos en el Finder. Lo curioso es que / se representa como : en el nivel de la cáscara. Otra extraña limitación es que la longitud de la ruta está limitada por 1024 bytes o caracteres UTF-8, no estoy seguro de cuál. Esto no es aplicado por Finder y puede llevar a un comportamiento extraño.

0 votos

@PercivalUlysses Tienes razón : está prohibido en HFS y HFS+, pero la mayoría de la gente de UNIX está acostumbrada a la sustitución automática de / por : y viceversa y no se da cuenta de que el almacenamiento interno de HFS utiliza : para separar los directorios de los nombres de archivo.

0 votos

@bmike Sí :) ¿Sabes algo sobre este límite de 1024 caracteres para las rutas? En 10.6, este comportamiento está documentado en los archivos de cabecera del sistema, y hay PATH_MAX variable. ¿Sigue siendo así en los sistemas posteriores?

5voto

Oskar Puntos 1242

Sí, debe mantener los nombres de los archivos en 255 caracteres, pero las rutas pueden ser más largas, pero no tanto como lo permiten otros Unix.

El OS X de sobremesa admite diez sistemas de archivos principales (HFS, HFS Plus, UFS, WebDAV, UDF, FAT, SMB/CIFS, AFP, NFS y FTP) con diversas variantes de algunos de ellos. Para más detalles, consulte la tabla 1 del artículo developer.apple.com:

El sistema de archivos por defecto del sistema, HFS plus admite nombres de archivo de 255 unidades de codificación UTF-16 y el único carácter reservado es : que se utiliza internamente para denotar un cambio de directorio en contraposición a / que normalmente se reserva para significar un cambio de directorio en lugar de pertenecer al nombre del archivo. (ok - creo que 0x00, el carácter nulo también está prohibido en HFS+)

Por convención, el software debe usar manejadores de archivo y es responsable de asignar suficiente espacio para contener una ruta de archivo arbitrariamente larga si no usa la API estándar para navegar por la estructura del sistema de archivos para localizar un nombre de archivo de 255 de longitud.

0 votos

touch : y mkdir : aunque el trabajo

0 votos

@StefanDragnev ¿Has mirado cómo aparecen en el Finder? Hay una sustitución automática (: es el separador de rutas, pero la parte Unix cambia : y / en todas las rutas)

0 votos

Notable. El Finder muestra un archivo/carpeta llamado / . Xcode también muestra el nombre del archivo como / . Código VS y ls ambos muestran el nombre como : .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X