too name longpathsenabled long length how disable windows-vista windows-xp ntfs filenames name-length

name - ¿Longitud máxima de nombre de archivo en NTFS(Windows XP y Windows Vista)?



windows disable path length limit (14)

Estoy diseñando una tabla de base de datos que contendrá los nombres de los archivos cargados. ¿Cuál es la longitud máxima de un nombre de archivo en NTFS utilizado por Windows XP o Vista?


199 en Windows XP NTFS, acabo de comprobar.

Esto no es una teoría, sino de solo intentarlo en mi laptop. Puede haber efectos atenuantes, pero físicamente no me permitirá agrandarlo.

¿Hay algún otro ajuste que limite esto, me pregunto? Pruébalo por ti mismo.




En realidad es 256, ver Comparación de funcionalidades del sistema de archivos, Límites .

Para repetir una publicación en http://fixunix.com/microsoft-windows/30758-windows-xp-file-name-length-limit.html

"Suponiendo que estamos hablando de NTFS y no de FAT32," 255 caracteres para ruta + archivo "es una limitación de Explorer, no del sistema de archivos en sí. NTFS admite rutas de hasta 32,000 caracteres Unicode, con cada componente de hasta 255 caracteres.

Explorer y la API de Windows lo limitan a 260 caracteres para la ruta, que incluyen letra de unidad, dos puntos, barras de separación y un carácter nulo de terminación. Es posible leer una ruta más larga en Windows si la inicia con una // "

Si lees las publicaciones anteriores, verás que hay una quinta cosa de la que puedes estar seguro: ¡encontrar al menos un usuario obstinado de la computadora!


Esto es lo que dice la "excepción no controlada" en el marco 4.5 al intentar guardar un archivo con un nombre de archivo largo:

La ruta especificada, el nombre de archivo o ambos son demasiado largos. El nombre de archivo completo debe tener menos de 260 caracteres y el nombre del directorio debe tener menos de 248 caracteres.


Estoy agregando esto a la respuesta aprobada arriba.

PARA SER BORRADO, la razón por la que la gente cree que son 255-260 caracteres es porque eso es todo lo que Windows Explorer admite. Se producirá un error al hacer algo como una copia de archivo en nombres de archivo más largos que eso. Sin embargo, un programa puede leer y escribir nombres de archivos mucho más largos (que es cómo llegas a las longitudes de las que se quejaba Explorer en primer lugar). La "solución recomendada" de Microsoft en situaciones como esta es abrir el archivo en el programa original que lo escribió y cambiarle el nombre.


La longitud en NTFS es 255. El campo NameLength en el atributo NTFS $Filename es un byte sin desplazamiento; Esto produce un rango de 0-255.

El nombre del archivo iself puede estar en diferentes "espacios de nombres". Hasta ahora hay: POSIX, WIN32, DOS y (WIN32DOS - cuando un nombre de archivo puede ser nativamente un nombre de DOS). (Dado que la cadena tiene una longitud, podría contener / 0 pero eso daría lugar a problemas y no se encuentra en los espacios de nombres anteriores).

Por lo tanto, el nombre de un archivo o directorio puede tener hasta 255 caracteres. Al especificar la ruta completa en Windows, debe MSDN para marcar esta ruta como una ruta de longitud extendida (~ 32k caracteres) . Si su ruta es más larga, tendrá que configurar su directorio de trabajo en el camino (ugh - efectos secundarios debido a la configuración de todo el proceso).


No puedo crear un archivo con el nombre + período + extensión en WS 2012 Explorer con más de 224 caracteres. ¡No dispares al mensajero!

En el CMD del mismo servidor no puedo crear un nombre de más de 235 caracteres:

El sistema no puede encontrar la ruta especificada.

El archivo con un nombre de 224 caracteres creado en el Explorador no se puede abrir en Notepad ++; en su lugar, aparece un nuevo archivo.


Según MSDN , tiene 260 caracteres. Incluye "<NUL>" -el carácter nulo de terminación invisible, por lo que la longitud real es 259.

Pero leer el artículo, es un poco más complicado.


Según la nueva documentación de Windows SDK (8.0) parece que se proporciona un nuevo límite de ruta. Hay un nuevo conjunto de funciones de manejo de ruta y una definición de PATHCCH_MAX_CCH como sigue:

// max # of characters we support using the "//?/" syntax // (0x7FFF + 1 for NULL terminator) #define PATHCCH_MAX_CCH 0x8000


Tiene 257 caracteres. Para ser precisos: el propio NTFS impone una longitud máxima de nombre de archivo de varios miles de caracteres (alrededor de 30''000 algo). Sin embargo, Windows impone una longitud máxima de 260 para la ruta y el nombre de archivo. La carpeta drive + toma al menos 3 caracteres, por lo que terminas con 257.


Esta parte de la documentación oficial dice claramente que son 255 caracteres Unicode para NTFS, exFAT y FAT32, y 127 caracteres Unicode o 254 caracteres ASCII para UDF.

Aparte de eso, la longitud máxima del nombre de ruta es siempre 32,760 caracteres Unicode, con cada componente de ruta no más de 255 caracteres.


238! Lo comprobé bajo Win7 32 bit con el siguiente script de bat:

set "fname=" for /l %%i in (1, 1, 27) do @call :setname @echo %fname% for /l %%i in (1, 1, 100) do @call :check goto :EOF :setname set "fname=%fname%_123456789" goto :EOF :check set "fname=%fname:~0,-1%" @echo xx>%fname% if not exist %fname% goto :eof dir /b pause goto :EOF


Los componentes individuales de un nombre de archivo (es decir, cada subdirectorio a lo largo de la ruta y el nombre de archivo final) están limitados a 255 caracteres, y la longitud total de la ruta está limitada a aproximadamente 32,000 caracteres. Sin embargo, generalmente debe intentar limitar las longitudes de ruta a menos de 260 caracteres ( MAX_PATH ) cuando sea posible. Consulte para obtener todos los detalles.