Si alguna vez ha visto este problema, probablemente haya sido una solución simple para usted. Si ha visto este error más de dos veces, 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 que garanticen que funcionarán también.
¿Por qué la longitud del nombre de archivo es incluso un problema en Windows?
Existe una larga historia de que la longitud de los nombres de archivo es un problema para sistemas operativos como Windows. Hubo un momento en 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 pudiste hacer fue algo como myresume.doc. Esta fue una restricción impuesta por el diseño del sistema de archivos.
Las cosas mejoraron con la aparición de 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 podría tener 255 caracteres y la longitud de la ruta del archivo podría llegar a 32,767 caracteres. Entonces, ¿cómo es posible que tengamos nombres de archivo 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 estemos moviendo bits y bytes por todas partes. La variable del sistema MAX_PATH es el que restringe los nombres de archivo y las rutas de archivo a menos de 260 caracteres.
Al ser una variable, pensarías 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 componentes que dependen de ellas comienzan a desmoronarse.
Entonces, ¿cómo lo arreglamos?
La solución fácil
Si tiene suerte, obtendrá el error y sabrá 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 parezca a lo siguiente:
C:UserguymcDocumentsMy Resumesresumewithanamesolongthatitcausesproblemsandbecomespartofsomeguysarticleonthewebhowdoyoulikemenow.docx
Es obvio quién es el delincuente en este caso. Encuentra el archivo en Explorador de Windows, o Explorador de archivos como se llama en Windows 10, haga clic una vez en él, presione F2 para cambiarle el nombre, y cambiar ese nombre de archivo tonto por 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 archivos o directorios por cualquier motivo.
Las siguientes soluciones le ayudarán. 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 en los que el número de caracteres de la ruta del archivo es superior a 260.
Tenga en cuenta que las palabras directorio y carpeta son intercambiables. Usaremos ‘directorio’ en el futuro. Los siguientes cmdlets de PowerShell también se pueden usar en archivos.
Quizás la ruta del archivo se parezca a:
C:UsersguymcDocumentsThisIsExactlyThePreciseDirectoryPathThatINeedToHaveToKeepMyFilesSortedInAMannerThatMakesSenseToMeSoLetsPretendThisIsAnActualFilepathThatYouMightAlsoHaveOnYourWindowsComputerAndNotOverThinkItDocument.docx
Esa ruta de archivo tiene 280 caracteres. Por lo tanto, no podemos copiar el directorio de allí a otro lugar con el método normal de copiar y pegar. Obtenemos el Ruta de destino demasiado larga error.
Supongamos que, por alguna razón, 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, puede seguir los siguientes pasos sin leer el artículo.
Cuando se abra PowerShell, estará en la raíz de su directorio de usuario. Seguir adelante asumiendo C: Usuarios guymc es su directorio de usuarios.
El directorio llamado Esta está dentro del Documentos directorio. Para movernos al directorio de Documentos, usamos el comando de DOS documentos cd.
Verá que el mensaje cambia a C: Usuarios guymc Documentos. Está bien. Estamos trabajando más cerca de los directorios, lo que facilitará las cosas.
Copiar directorio usando el elemento de copia
Queremos copiar el directorio Esta y su contenido en ThatNewFolder. Usemos el cmdlet de PowerShell Copiar artículo con los parámetros -Destino y -Recurrir.
-Destination le dice a PowerShell dónde queremos que esté la copia. -Recurse le dice a PowerShell que copie todos los elementos del interior en el 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 que contiene, a ThatNewFolder. Mover no deja el original en su lugar.
Podemos usar el cmdlet de PowerShell Mover elemento con los parámetros -Sendero y -Destino. -Path define el elemento que queremos mover y -Destination le dice a PowerShell dónde lo queremos.
El cmdlet colocará This dentro de ThatNewFolder. También moverá todo lo que esté dentro del directorio Este. Move-Item se puede usar 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ó, use el cd ThatNewFolder comando para entrar ThatNewFolder. Entonces usa el dir comando para listar los directorios en ThatNewFolder. Verá que este directorio está allí.
Eliminar directorio usando Eliminar elemento
Si queremos borrar el Esta directorio, y todo lo que contiene, usamos el Remover el artículo cmdlet.
El cmdlet Remove-Item tiene cierta seguridad incorporada que dificulta la eliminación de un directorio con elementos dentro. En nuestro ejemplo, sabemos que queremos eliminar todo, así que usaremos los parámetros -Recurrir para que se borre todo lo que hay dentro y -Fuerza para hacerlo sin preguntarnos si estamos seguros de todos los elementos que contiene.
¡Tenga 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-elemento de este -Recurse -Fuerza
Puede usar el comando dir nuevamente para asegurarse de que no esté.
Hacer que Windows 10 acepte rutas de archivo largas
Si sabe que va a utilizar rutas de archivo largas y nombres de archivo largos 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 archivo largas
Para que Windows 10 Home acepte rutas de archivo largas, debemos abrir el Editor de registro. Si no ha trabajado en el Editor del Registro antes, tenga cuidado. Eliminar o cambiar cosas aquí accidentalmente puede hacer que Windows deje de funcionar 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 nuestra 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 la copia de seguridad, navegue hasta la ubicación HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Control FileSystem y encuentra la llave LongPathsEnabled.
Haga doble clic en LongPathsEnabled. En el Datos de valor: campo, asegúrese de que el número 1 está ahí. Hacer clic OK para cometer el cambio.
Salga del Editor del Registro y debería poder trabajar con rutas de archivo largas y locas ahora.
Hacer que Windows 10 Pro o Enterprise acepten rutas de archivo largas
Para permitir que Windows 10 Pro o Enterprise use rutas de archivo largas, usaremos el Editor de políticas de grupo. Es una herramienta que nos permite establecer políticas sobre cómo funciona Windows a nivel de computadora y 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 políticas de grupo yendo a la Comienzo menú y escribiendo gpedit. El resultado superior debería ser Editar política de grupo. Haz doble clic en eso.
Una vez que se abra el Editor de políticas de grupo, navegue hasta Configuración del equipo> Plantillas administrativas> Sistema> Sistema de archivos. Ahí verás la política Habilitar rutas largas de Win32.
Haga doble clic en él para editar la configuración de la política. Cambiarlo de Desactivado para Activado, luego haga clic en el OK botón para confirmar el cambio.
Es posible que la política no entre en vigencia de inmediato. Sin embargo, puede forzar la actualización de la política de grupo.
Eso es todo
Hay otras formas de trabajar con nombres de archivo largos y rutas de archivo, pero lo que hemos analizado aquí son los métodos más simples y efectivos.