Cómo solucionar el problema de «El nombre del archivo es demasiado largo» en Windows

Si alguna vez ha visto este problema, probablemente sea una solución sencilla para usted. Si has visto este error más de dos veces, entonces también sabes que a veces puede ser un problema complejo de arreglar.

Esperemos que sólo se encuentre con la variedad de arreglos fáciles, pero le prepararemos para los arreglos menos fáciles, garantizados para trabajar también.

¿Por qué la longitud del nombre de los archivos es un problema en Windows?

Hay una larga historia de longitudes de nombres de archivos que son un problema para los sistemas operativos como Windows. Hubo un tiempo en el que no se podían tener nombres de archivo de más de 8 caracteres más una extensión de archivo de 3 caracteres. Lo mejor que se podía hacer era algo como mi currículum.doc. Esta era una restricción impuesta por el diseño del sistema de archivos.

Las cosas mejoraron a medida que salían nuevas versiones de Windows. Pasamos de un sistema de archivos antiguo y limitado a algo llamado Sistema de Archivos de Nueva Tecnología (NTFS). NTFS nos llevó a un punto en el que un nombre de archivo podía tener 255 caracteres, y la longitud de la ruta del archivo podía llegar a 32.767 caracteres. Entonces, ¿cómo es posible que tengamos nombres de archivo demasiado largos?

Windows tiene cosas conocidas como variables de sistema. Son variables en las que Windows confía para funcionar, porque Windows siempre sabrá qué significan las variables y dónde están, aunque estemos moviendo bits y bytes por todas partes. La variable de sistema MAX_PATH es la que restringe los nombres y rutas de archivos a menos de 260 caracteres.

Al ser una variable, se podría pensar que podemos cambiarla. No, no deberíamos. Sería como sacar un hilo de un jersey. Tan pronto como una variable del sistema cambia, otras variables del sistema y los componentes que dependen de ellas comienzan a deshacerse.

¿Cómo lo arreglamos, entonces?

La solución fácil

Si tienes suerte, obtendrás el error y sabrás exactamente el nombre del archivo que está causando el problema. O al menos dónde encontrar el archivo. Tal vez usted tiene un nombre de archivo que se ve algo como:

C:\User\guymc\Documents\My Resumesresumewithanamesolongthatitcausesproblemsandbecomespartofsomeguysarticleonthewebhowdoyoulikemenow.docx

Es obvio que el delincuente es en este caso. Busque el archivo en el Explorador de Windows, o el Explorador de archivos como se llama en Windows 10, haga clic una vez en él, pulse F2 para cambiar el nombre, y cambiar ese nombre de archivo tonto a algo más razonable. Problema resuelto.

Los arreglos menos fáciles

No siempre es tan fácil arreglar este problema. A veces es posible que no puedas cambiar los nombres de los archivos o directorios por la razón que sea.

Las siguientes soluciones te servirán. No son difíciles de hacer.

Mover, eliminar o copiar archivos o directorios utilizando PowerShell

A veces se obtiene un error al intentar mover, eliminar o copiar directorios donde el recuento de caracteres para la ruta del archivo es más de 260.

Nótese que las palabras directorio y carpeta son intercambiables. En adelante utilizaremos «directorio». Los siguientes cmdlets de PowerShell también se pueden utilizar en los archivos.

Tal vez la ruta del archivo se parece a:

C:\Users\guymc\Documents\This\Is\Exactly\The\Precise\Directory\Path\That\I\Need\To\Have\To\Keep\My\Files\Sorted\In\A\Manner\That\Makes\Sense\To\Me\So\Lets\Pretend\This\Is\An\Actual\Filepath\That\You\Might\Also\Have\On\Your\Windows\Computer\And\Not\Over\Think\It\Document.docx

Esa ruta del archivo tiene 280 caracteres. Así que no podemos copiar el directorio fuera de allí a otro lugar con el método normal de copiar y pegar. Obtenemos el error Ruta de destino demasiado larga.

Supongamos que, por la razón que sea, no podemos renombrar los directorios en los que está anidado el archivo. ¿Qué hacemos?

Abrir PowerShell. Si aún no has utilizado PowerShell, disfruta de nuestro artículo Uso de PowerShell para usuarios domésticos – Guía para principiantes. Aunque puedes hacer los siguientes pasos sin leer el artículo.

Cuando se abra PowerShell, estará en la raíz de su directorio de usuario. Siga asumiendo que C:\NUsers\guymc es su directorio de usuario.

El directorio llamado This está dentro del directorio Documents. Para entrar en el directorio Documentos, utilizamos el comando DOS cd Documentos.

Verás que el prompt cambia a C:\NUsers\guymc\NDocumentos. Eso es bueno. Estamos trabajando más cerca de los directorios que hará las cosas más fáciles.

Copiar directorio usando Copy-Item

Queremos copiar el directorio This y su contenido en ThatNewFolder. Vamos a utilizar el cmdlet de PowerShell Copy-Item con los parámetros -Destino y -Recurse.

-Destino le dice a PowerShell dónde queremos que esté la copia. -Recurse le dice a PowerShell que copie todos los elementos del interior al destino. La copia deja los originales donde están y hace todos los nuevos en el destino.

Copiar-Item Esto -Destino EsaNuevaCarpeta -Recurrir

Mover Directorio Usando Mover-Item

Digamos que queremos mover el directorio Esto, y todos los directorios y archivos que hay en él, a EsaNuevaCarpeta. El movimiento no deja el original en su lugar.

Podemos utilizar el cmdlet de PowerShell Move-Item con los parámetros -Path y -Destination. -Path define el elemento que queremos mover y -Destination le dice a PowerShell dónde lo queremos.

El cmdlet pondrá This dentro de ThatNewFolder. También moverá todo lo que esté dentro del directorio This. Move-Item se puede utilizar para mover archivos o directorios, y funciona independientemente de la ruta del archivo o la longitud del nombre del archivo.

Move-Item -Path This -Destination ThatNewFolder

Para asegurarse de que funcionó, utilice el comando cd ThatNewFolder para entrar en ThatNewFolder. A continuación, utilice el comando dir para enumerar los directorios en ThatNewFolder. Verás que el directorio This está ahí.

Borrar directorio usando Remove-Item

Si queremos borrar el directorio This, y todo lo que hay en él, usamos el cmdlet Remove-Item.

El cmdlet Remove-Item tiene cierta seguridad incorporada que dificulta la eliminación de un directorio con cosas dentro. En nuestro ejemplo, sabemos que queremos borrar todo, así que usaremos los parámetros -Recurse para que borre todo lo que hay dentro y -Force para que lo haga sin preguntarnos si estamos seguros de cada elemento que hay dentro.

¡Ojo! Recuperar cualquier cosa borrada de esta manera sería extremadamente difícil. Puedes probar los métodos de Cómo recuperar archivos borrados accidentalmente, pero no esperes mucho.

Remove-Item This -Recurse -Force

Puedes usar el comando dir de nuevo para asegurarte de que ha desaparecido.

Hacer que Windows 10 acepte rutas de archivo largas

Si sabes que vas a usar rutas de archivo largas y nombres de archivo largos repetidamente, es más fácil hacer que Windows trabaje para ti. No tiene sentido usar PowerShell para hacer el trabajo todos los días.

Hay dos maneras de hacer esto. Una es para los usuarios de Windows 10 Home y la otra es para los usuarios de Windows 10 Pro o Enterprise. Estos métodos pueden funcionar para Windows 8.1 o anteriores, pero no podemos garantizarlo.

Hacer que Windows 10 Home acepte rutas de archivo largas

Para hacer que Windows 10 Home acepte rutas de archivo largas, tenemos que abrir el Editor del Registro. Si usted no ha trabajado en el Editor del Registro antes, tenga cuidado. Borrar o cambiar accidentalmente cosas aquí puede hacer que Windows deje de funcionar por completo.

Siempre haga una copia de seguridad de su registro antes de hacer cualquier cambio. Aprenda todo lo que necesita saber al respecto en nuestra Guía definitiva para hacer copias de seguridad y restaurar el registro de Windows.

Una vez que tenga el Editor del Registro abierto, y su copia de seguridad hecha, navegue hasta la ubicación HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem y encuentre la clave LongPathsEnabled.

Haga doble clic en LongPathsEnabled. En el campo Datos de valor:, asegúrese de que el número 1 está allí. Haga clic en Aceptar para confirmar el cambio.

Salga del Editor del Registro y ahora debería poder trabajar con rutas de archivo largas y locas.

Haga que Windows 10 Pro o Enterprise acepte rutas de archivo largas

Para permitir que Windows 10 Pro o Enterprise utilice rutas de archivo largas, vamos a utilizar el Editor de Políticas de Grupo. Es una herramienta que nos permite establecer políticas sobre el funcionamiento de Windows a nivel de equipo y de usuario.

Tenemos varios artículos sobre el uso de la directiva de grupo para hacer cosas como deshabilitar o habilitar las opciones de Internet Explorer, o añadir un mensaje a la pantalla de inicio de sesión.

Abre el Editor de directivas de grupo yendo al menú Inicio y escribiendo gpedit. El resultado superior debería ser Editar política de grupo. Haz doble clic sobre ella.

Una vez que se abra el Editor de directivas de grupo, navega hasta Configuración del equipo > Plantillas administrativas > Sistema > Sistema de archivos. Allí verá la política Habilitar rutas largas de Win32.

Haga doble clic en ella para editar la configuración de la política. Cámbiela de Desactivada a Activada y, a continuación, haga clic en el botón Aceptar para confirmar el cambio.

Es posible que la política no surta efecto inmediatamente. Sin embargo, puede forzar la actualización de la política de grupo.

Eso es todo

Hay algunas otras formas de trabajar con nombres de archivo y rutas de archivo largas, pero lo que hemos repasado aquí son los métodos más simples y efectivos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.