Cómo solucionar el problema "El nombre de archivo es demasiado largo" en Windows


Si alguna vez has visto este problema, probablemente fue una solución simple para ti. Si ha visto este error más de dos veces, entonces también sabe que a veces puede ser un problema complejo de solucionar.

Esperemos que solo se encuentre con la variedad de soluciones fáciles, pero lo prepararemos para las soluciones menos fáciles y garantizadas para trabajar también.

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

Hay un largo historial de longitudes de nombre de archivo que son un problema para sistemas operativos como Windows. Hubo un tiempo en que no podía tener nombres de archivo de más de 8 caracteres más una extensión de archivo de 3 caracteres. Lo mejor que podía hacer era algo como myresume.doc. Esta fue una restricción establecida por el diseño del sistema de archivos.

Las cosas mejoraron a medida que aparecieron nuevas versiones de Windows. Pasamos de un sistema de archivos antiguo y limitado a algo llamado New Technology File System (NTFS). NTFS nos llevó a un punto donde un nombre de archivo podría tener 255 caracteres de largo, y la longitud de la ruta del archivo podría llegar a 32,767 caracteres. Entonces, ¿cómo podemos tener nombres de archivo que sean demasiado largos?

Windows tiene cosas conocidas como variables del sistema. Estas son variables en las que Windows confía para funcionar, porque Windows siempre sabrá qué significan las variables y dónde están, incluso cuando estamos moviendo bits y bytes por todas partes. La variable del sistema MAX_PATHes la que restringe los nombres de archivo y las rutas de archivo a menos de 260 caracteres.

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

In_content_1 all: [300x250] / dfp: [640x360]->

¿Cómo lo solucionamos, entonces?

La solución fácil

Si eres afortunado, obtendrás el error y saber exactamente qué nombre de archivo está causando el problema. O al menos dónde encontrar el archivo. Tal vez tenga un nombre de archivo que se parece a:

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

Es obvio quién es el delincuente en este caso. Busque el archivo en Explorador de Windowso Explorador de archivoscomo se llama en Windows 10, haga clic una vez sobre él, presione F2para cambiarle el nombre y cambie ese nombre de archivo tonto a algo más razonable. Problema resuelto.

Las soluciones menos fáciles

No siempre es tan fácil solucionar este problema. A veces es posible que no pueda cambiar los nombres de los archivos o directorios por cualquier motivo.

Las siguientes soluciones harán el truco por usted. No son difíciles de hacer.

Mover, eliminar o copiar archivos o directorios con PowerShell

A veces aparece un error al intentar mover, eliminar o copiar directorios donde el recuento de caracteres para la ruta del archivo es superior a 260.

Tenga en cuenta que el directorio y la carpeta de palabras son intercambiables. Usaremos el "directorio" en adelante. Los siguientes cmdlets de PowerShell también se pueden usar en archivos.

Quizás 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 de archivo tiene 280 caracteres de longitud. Por lo tanto, no podemos copiar el directorio desde allí a otro lugar con el método normal de copiar y pegar. Obtenemos el error Ruta de destino demasiado larga.

Supongamos que, por cualquier motivo, no podemos cambiar el nombre de los directorios en los que está anidado el archivo. ¿Qué hacemos?

Abra PowerShell. Si aún no ha utilizado PowerShell, disfrute de nuestro artículo Uso de PowerShell para usuarios domésticos: una guía para principiantes. Sin embargo, puedes seguir los siguientes pasos sin leer el artículo.

Cuando se abre PowerShell, estará en la raíz de su directorio de usuarios. Siga y suponga que C: \ Users \ guymces su directorio de usuarios.

El directorio llamado Estoestá dentro de los Documentos directorio. Para pasar al directorio Documentos, usamos el comando DOS Documentos de CD.

Usted ' Verá el cambio rápido a C: \ Users \ guymc \ Documents. Eso es bueno. Estamos trabajando más cerca de los directorios que facilitarán las cosas.

Copiar directorio usando Copy-Item

Queremos copiar el directorio Estoy su contenido en ThatNewFolder. Usemos el cmdlet de PowerShell Copiar elementocon los parámetros -Destinationy -Recurse.

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

Copiar elemento este -Destino ThatNewFolder -Recurse

Mover directorio usando Move-Item

Digamos que queremos mover el directorio This, y todos los directorios y archivos en él, a ThatNewFolder. Mudarse no deja el original en su lugar.

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

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

Move-Item -Path This -Destination ThatNewFolder

Para asegurarse de que funcionó, use el cd ThatNewFoldercomando para acceder a ThatNewFolder. Luego use el comando dirpara enumerar los directorios en ThatNewFolder. Verá el directorio Este está allí.

Eliminar directorio usando Remove-Item

Si queremos eliminar el directorio Thisy todo lo que contiene, usamos el Remove -Itemcmdlet.

El cmdlet Remove-Item tiene cierta seguridad incorporada que hace que sea difícil eliminar un directorio con elementos dentro de él. En nuestro ejemplo, sabemos que queremos eliminar todo, por lo que utilizaremos los parámetros -Recursepara que elimine todo lo que está dentro y -Forcepara que lo haga sin preguntándonos si estamos seguros de todos los artículos dentro.

¡Ten cuidado! Recuperar cualquier cosa eliminada de esta manera sería extremadamente difícil. Puede probar los métodos en  Cómo recuperar archivos borrados accidentalmente, pero no espere mucho.

Eliminar- Item This -Recurse -Force

Puede usar el comando dir nuevamente para asegurarse de que desaparezca.

Hacer que Windows 10 acepte rutas de archivo largas

Si sabe que va a utilizar rutas de archivo largas y nombres largos de archivo repetidamente, es más fácil hacer que Windows funcione para usted. No tiene sentido usar PowerShell para hacer el trabajo todos los días.

Hay dos formas de hacer esto. Uno es para usuarios de Windows 10 Home y el otro es para usuarios de Windows 10 Pro o Enterprise. Estos métodos pueden funcionar para Windows 8.1 o versiones anteriores, pero no podemos garantizarlo.

Hacer que Windows 10 Home acepte rutas de archivos largas

Para hacer que Windows 10 Home acepte rutas de archivos largas, necesitamos para abrir el Editor del registro. Si no ha trabajado antes en el Editor del registro, tenga cuidado. Eliminar accidentalmente o cambiar cosas aquí puede evitar que Windows funcione por completo.

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

Una vez que haya abierto el Editor del registro y haya realizado su copia de seguridad, navegue a la ubicación HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FileSystemy encuentre la clave LongPathsEnabled.

Haga doble clic en LongPathsEnabled. En el campo Información del valor:, asegúrese de que el número 1esté allí. Haga clic en Aceptarpara confirmar el cambio.

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

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

Para permitir Windows 10 Pro o Enterprise para usar rutas de archivo largas, vamos a utilizar el Editor de directivas de grupo. Es una herramienta que nos permite establecer políticas sobre cómo funciona Windows en la computadora y los niveles de usuario.

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

Abra el Editor de directivas de grupo yendo al menú Inicioy escribiendo gpedit. El resultado principal debería ser Editar política de grupo. Haga doble clic en eso.

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

Haga doble clic en él para editar la configuración de la política. Cámbielo de Desactivadoa Activado, luego haga clic en el botón Aceptarpara confirmar el cambio.

La política puede no tener efecto de inmediato. Sin embargo, puede  obligar a la política de grupo a actualizar.

Eso es todo

Hay otras formas de evitar nombres de archivo largos y rutas de archivo, pero por lo que hemos pasado aquí son los métodos más simples y efectivos.

Solución para el error "El nombre del archivo es demasiado largo"

Artículos Relacionados:


17.07.2019