Pregunta Cómo eliminar un archivo con una ruta demasiado larga para ser eliminado [duplicado]


Esta pregunta ya tiene una respuesta aquí:

Estaba trabajando con un código fuente de visión por computadora que encontré y no me di cuenta de que crea un archivo de caché que tiene un nombre MUY LARGO y ahora no puedo eliminar los 2 de ellos.

Traté de cambiar el nombre a un nombre más corto, pero no puedo hacer nada con el archivo, también intenté reiniciar mi computadora y ver si desaparecía.

El mensaje de error dice:

Ruta de destino demasiado larga.

El / los nombre (s) del archivo (s) serían demasiado largos para   carpeta de destino. Puede acortar el nombre del archivo e intentar nuevamente, o probar un   ubicación que tiene un camino más corto.

screenshot

¿Cómo puedo eliminar los archivos en este caso?


192


origen


¿Funcionaría desde la línea de comando con el del ¿mando? Algo a lo largo de las líneas de del *.cache debería eliminar todos los archivos .cache en el directorio actual. - Ryan
"Ruta \ a \ carpeta \ CACHEI ~ El sistema no pudo encontrar el archivo especificado" dijo dos veces y hay 2 archivos pero no hizo nada - Chris
Pensándolo bien, puedes verificar una de las otras preguntas que ya han sido respondidas. Éste por ejemplo. - Ryan
Si estos dos archivos son los únicos que quedan en el directorio, entonces puede ser mejor que elimine todo el directorio. Desde el símbolo del sistema, prueba rd /s directoryname  Esto borrará directoryname y todos los archivos / subdirectorios dentro de él, así que úselo con precaución :) - bitsmack
youtube.com/watch?v=qQTyTprFAOg - bhv


Respuestas:


Asumiendo que estás en Windows:

Lo que siempre hago es usar subst para crear una asccociation driveletter con parte de la ruta.

Luego vaya a la nueva letra de unidad y navegue a los archivos que tienen nombres largos. Ahora debería poder cambiarles el nombre / eliminar / etc. La razón por la que esto funciona es porque la ruta en sí ya no contiene> 255 caracteres.

Para crear una carpeta subst

  1. Inicie un comandoprompt (no se necesitan privilegios de administrador)
  2. Utilizar cd para navegar a la carpeta que desea ir (puede usar lengüeta para autocompletar nombres
  3. tipo subst j: . para crear la asociación driveletter. (en lugar de., también puede escribir la ruta completa)
  4. Ahora en el explorador tienes una nueva carta. Vaya a él y haga lo que tenga que hacer con los archivos .cache.
  5. Regresa a tu ventana de cmd y escribe subst /d j: Para quitar la unidad o, alternativamente, reinicie su PC.

EDITAR: Un truco que aprendí que puede acortar esto bastante. Desde la ventana del explorador donde tiene problemas, haga clic en la barra de direcciones para que pueda escribir, luego escriba cmd y prensa Entrar para iniciar un símbolo del sistema en esa ubicación, luego proceder en el paso 3. :)

EDIT2: Bien, este truco se puede expandir aún más. Si estás en el explorador en el camino correcto, simplemente escribe subst j: . en la barra de direcciones y presiona enter. Aparecerá una ventana de comandos, ejecutará el comando y se cerrará de nuevo, y allí está, aparece una nueva unidad en el explorador.


341



robocopy empty_dir base_nested_dir / purge - Simplemente crea un directorio vacío, y dile a robocopy que purgue todo en el directorio de destino que no está en el directorio vacío stackoverflow.com/a/3320317/588759 - rofrol
Acabo de probar esto y no pude eliminar el archivo en cuestión. Utilizo cygwin con Windows, una solución alternativa es eliminar el archivo de esa manera: rm -R / path / in / question siempre que ningún otro programa esté usando el archivo tú eres bueno para irte - John
Tuve un problema donde SUBST no reconocía a J: como parámetro (tampoco veía unidades virtuales disponibles), por lo que la opción de cygwin mencionada por John funcionaba bien. - Tisch
@rofrol, debe hacer una respuesta a su comentario robocopy: es mucho más fácil que hacer el enfoque de nombres de directorio cuando se trata de muchos directorios secundarios (como los creados en node_modules) - Andy Brown
La solución de John funcionó muy bien para mí, solo agregué el parámetro -f (force): rm -R -f / pathToDelete - Christophe Keller


Su pregunta le pregunta cómo eliminar un archivo cuando el nombre del archivo es demasiado largo. Si la ruta es demasiado larga y no solo el nombre del archivo, puede cambiar el nombre de las carpetas para acortar la ruta.

Pero para eliminar un archivo cuyo nombre es más de 255 caracteres:

  • Abra un símbolo del sistema ejecutando "CMD.EXE"
  • Navega a la carpeta que contiene el archivo
  • Use el comando DIR / X que mostrará los nombres cortos de los archivos.
  • Eliminar usando el nombre corto.

es decir, si el archivo se llama "verylongfilename.fil", el shortname se mostrará como "verylo ~ 1.fil" y puede eliminarlo con ese nombre.

Tenga en cuenta que aunque Windows puede manejar rutas de más de 255 caracteres, la mayoría de la GUI, como Windows Explorer, está limitada por el límite más corto.


64



Esta es una mejor respuesta que la aceptada. - Ben
La respuesta elegida es mejor porque puede eliminar carpetas enteras con ese método - mcont
pero en Windows 7 parece que DIR / x no cambia ninguna pantalla aquí ... :( - gumuruh
Algunos sistemas de archivos NTFS NO tienen 8.3 equivalentes. Entonces esto no siempre funciona. - Ross Presser
Del / S de CMD me funcionó incluso con nombre grande en 8. - Jeff


Buscado en Google: borrar nombre de archivo largo Primer resultado

Usa Unlocker http://www.filehippo.com/download_unlocker/

No se puede eliminar la carpeta: está siendo utilizada por otra persona o programa   No se puede eliminar el archivo: acceso denegado Ha habido un intercambio   violación. El archivo de origen o de destino puede estar en uso. El archivo es   en uso por otro programa o usuario. Asegúrese de que el disco no esté lleno o   protegido contra escritura y que el archivo no está actualmente en uso.

¡Unlocker puede ayudar! Simplemente haga clic derecho en la carpeta o archivo y seleccione   Desbloqueador Si la carpeta o archivo está bloqueado, una lista de ventanas de casilleros   aparecerá. Simplemente haga clic en Desbloquear todo y ¡listo!


4



Lo vi pero no sabía si el desbloqueo era seguro de usar, así que lo ignoré, lo probaré. EDITAR: no funcionó. funciona en otros archivos pero el desbloqueador no aparece en el menú desplegable - Chris
Sin duda, la forma más sencilla de hacerlo, aunque puede necesitar un reinicio para completar. No hay nada malo con Unlocker en absoluto: lo he usado durante años y es una utilidad muy útil. En el caso de un archivo o carpeta cuya ruta es demasiado larga, no encontrará ningún identificador de bloqueo pero debería ofrecer la opción Eliminar en el menú desplegable siguiente. - Steve Pettifer
Funcionó a la perfección, lo curioso es que tengo este software instalado pero no se me ocurrió usarlo en esta situación. - Daniel Sokolowski
No funcionó para otra carpeta donde copié una carpeta de unión circular, pero lo que funcionó fue cambiar el nombre de cada carpeta de nivel a un carácter como 1 todo el camino y luego eliminarlo. - Daniel Sokolowski
Esta fue la única respuesta que funcionó para mí (estoy usando Windows 10). ¡Muchas gracias! - user26832


Microsoft tiene un artículo de base de conocimiento útil sobre la eliminación de archivos no recuperables. La causa # 4 es relevante para ti.

Su mejor opción sería asignar una unidad a la carpeta en la que se encuentra el archivo (resolución n. ° 3), luego ingresar a través de esa unidad y eliminarla.


2



Nunca antes me había dado cuenta de que podía "asignar la unidad de red" a una ubicación en mi disco duro. Eso es lo que hice en el Explorador de Windows. Después de navegar a la unidad, podría eliminar fácilmente la carpeta y el contenido. Mismo principio que las soluciones de consola que se muestran arriba, pero esta es una solución rápida de GUI que me resultó más fácil. - RandomHandle