Por algún motivo que desconozco, en algunas instalaciones de Windows 10, el soporte de nombres de archivo corto o SFN (Short File Names), viene desactivado en algunos volúmenes.

Si la principal revolución de Windows NT 3.1 y Windows 95, fue el soporte de nombres de archivo largos o LFN (Long File Names), te preguntarás para que quiere uno seguir manejando los ficheros y directorios siguiendo la vieja convención de FAT tipo 8.3 (8dot3), o sea un nombre de ocho caracteres, y una extensión de tres.

En circunstancias normales, no necesitarías esta característica, en especial si usas una versión de 64 bits de Windows que ya no es compatible con DOS. Sin embargo, puede que llegues a necesitarlo, tal vez para borrar un archivo o directorio, y que el sistema se queja de que la ruta especificada es demasiado larga. En mi caso esa necesidad vino al querer instalar el entorno de desarrollo Lazarus, en mi carpeta habitual de “Archivos de programa”. El instalador se quejaba de que la ruta no podía contener espacios, así que esencialmente sólo me dejaba instalarlo en C:\Lazarus.

Pues bien, el truco que seguí con mi antigua instalación de Lazarus 1.4, fue instalarlo en D:\ARCHIV~1\Lazarus, o sea el nombre corto equivalente a D:\Archivos de programa\Lazarus. En este caso no fue posible, puesto que en mi unidad D:, Windows no tenía habilitada la generación de nombres de archivo cortos. Esta característica, guarda una correspondencia entre nombres largos y cortos. Esto es, nos da un mayor grado de compatibilidad a cambio de un trabajo imperceptiblemente superior cada vez que se crea un archivo o directorio. De este modo puedes seguir trabajando y visualizando nombres largos, pero si quieres, además los cortos.

Si ejecutas un DIR /X, Windows te mostrará los nombres largos, y los cortos en el caso de que existan:



Puedes ver que “Archivos de programa” tiene asociado el de ARCHIV~1. FICHEROS no tiene asociado ningún nombre corto, puesto que ya es corto de por si (menos de 8 caracteres y sin espacios), mientras que PROYECTOS o _DOWNLOADS no lo tienen. Esto ya es un indicativo de la configuración de Short File Names.

Lo primero que necesitas saber es si ese volumen tiene activado la correspondencia de nombres cortos por defecto. Una vez activada, cada nuevo archivo generará su nombre corto. Si la desactivamos, esto dejará de ser así. En ambos casos los efectos no son retroactivos, así que si la activamos, los archivos que ya existieran no lo tendrán. Y si la desactivamos, no perderemos los nombres cortos de ficheros que ya existieran.

Desde una consola de comandos (CMD) con permisos de administración, ejecutamos lo siguiente:
fsutil 8dot3name query d:

Que generará una respuesta de este estilo:
El estado del volumen es: 0 (está habilitada la creación de nombres 8dot3).
El estado del Registro es: 2 (valor predeterminado: configuración por volumen).
De acuerdo con las dos opciones de configuración anteriores, la creación de nombres 8dot3 está habilitada en d:

La última línea es el quid de la cuestión. En este ejemplo, la generación de nombres cortos está activada en la unidad D:

Fsutil existe desde Windows 2000 Server, pero no se incorporaron a los sistemas operativos de escritorio hasta Windows 7.

Para activarlo, no tenemos más que ejecutar:
fsutil 8dot3name set d: 0

Sin embargo nos queda el problema de aquellos archivos y directorios que ya existieran, y que no tienen un nombre corto. Pues manualmente podemos generarle uno a nuestro gusto de esta manera:
fsutil file setshortname “D:\Archivos de programa” ARCHIV~1

Ten en cuenta que en esta situación, cuando usamos setshortname, se requiere un uso exclusivo a ese recurso, si alguna aplicación lo tiene abierto, fallará con un “Acceso denegado”.

Finalmente si quisiéramos revertirlo, nada más sencillo que:
fsutil 8dot3name set d: 1

Si quieres más detalles, revisa referencia de Fsutil.