2011-12-29 24 views
6

Muchas aplicaciones de Windows (por ejemplo, casi todas las aplicaciones .NET) no pueden abrir rutas de más de 260 caracteres de longitud. Estoy cambiando el nombre de una lista de archivos de podcast. Quiero nombrar cada archivo después del título del episodio, pero los títulos tienen un máximo de 100 caracteres. Esto significa que si un usuario guarda el archivo en un directorio profundo con una ruta muy larga, puede llegar al límite y no puede abrir el archivo en esas otras aplicaciones.En Windows, ¿cuál es la longitud máxima del nombre de archivo que se considera aceptable para una aplicación? (Actualizado y aclarado)

¿Es aceptable para mi programa poner nombres de archivo durante tanto tiempo y dejar que el usuario maneje caminos muy largos cuando se trata? iTunes cosecha a 40 caracteres, pero parece muy conservador.

Gracias a Ben Voigt por aclarar que esto solo se aplica a ciertas aplicaciones.

+0

Parecía poco probable que el límite de longitud de ruta fuera tan corto, [pero aquí está en blanco y negro] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247 (v = vs.85) .aspx # maxpath). – sarnold

+0

@sarnold: su enlace tiene la información correcta: es decir, se pueden usar longitudes de ruta de hasta 32767 caracteres. –

+0

Pero en ese documento se menciona que las API de ruta de acceso más larga no se pueden usar para referirse a _relative_ pathnames; ¿Es esto una restricción tan severa como suena? – sarnold

Respuesta

3

Windows NO tiene un límite de 255 caracteres para rutas de archivos.

CreateFileA tiene un límite de 260 caracteres. CreateFileW admite nombres de hasta 32760 caracteres (64kB).

Algunos sistemas de archivos imponen límites adicionales en el nivel máximo de anidamiento del directorio o la longitud máxima de cada parte.

Probablemente esté pensando en ciertos programas populares de Windows que tienen un límite de 255 caracteres, pero acomodar aquellos con una advertencia o una configuración configurable por el usuario es probablemente más apropiado que agregar su propio límite de hardware.

+0

Whoa, genial. ¿Conoce específicamente alguna de las principales aplicaciones de Windows que no son compatibles con el sistema de directorio Unicode y, por lo tanto, están limitadas a 255 caracteres? – Alex

+2

@Alex: Claro. Casi cualquier cosa escrita en .NET: http://blogs.msdn.com/b/bclteam/archive/2007/02/13/long-paths-in-net-part-1-of-3-kim-hamilton. aspx –

0

Bueno recuerdo haber tenido un USB que no admitía más de 32 caracteres en el nombre del archivo (no recuerdo qué FS tenía). También acabo de encontrar este enlace en Google: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx

limitaciones en la cantidad de caracteres también pueden ser diferentes y pueden variar dependiendo del sistema de archivos y formato de prefijo del nombre de ruta de acceso utilizada. Esto se complica aún más por el apoyo a los mecanismos de compatibilidad con versiones anteriores. Por ejemplo, el viejo sistema de archivos FAT de MS-DOS admite un máximo de 8 caracteres para el nombre de archivo base y 3 caracteres para la extensión, para un total de 12 caracteres, incluido el separador de puntos. Esto se conoce comúnmente como un nombre de archivo 8.3. Los sistemas de archivos FAT y NTFS de Windows no están limitados a los nombres de archivos 8.3, porque tienen un soporte de nombre de archivo largo, pero aún admiten la versión 8.3 de los nombres largos de archivos.

Cuestiones relacionadas