Un truco que he utilizado para evitar la limitación de longitud de “ruta completa y nombre de archivo” para mover, copiar o borrar algo es acortarlo “entrando” por la mitad (o más) utilizando una letra de unidad mapeada que apunta a una carpeta en el camino.
así que tienes c:|alguna ruta larga… yoofbarfolders.|archivo antiguo.txt.
Entonces mapea una letra de unidad arbitraria a algún lugar a lo largo de la ruta para que el primer trozo de la ruta se convierta en sólo unos pocos caracteres de largo. Requisito previo - la carpeta debe estar en una carpeta compartida (que puede estar ya si está en un servidor, que es donde he necesitado hacer esto), y si no lo está ya, entonces elige una carpeta en algún lugar de la ruta y compártela. Dependiendo de su entorno y nivel de paranoia, permita que todos modifiquen el acceso al recurso compartido siempre que los permisos de NTFS sean razonablemente restrictivos. Si lo desea, sólo permita los derechos de modificación sólo a su propia cuenta.
Ahora vaya a la carpeta compartida o a una dentro de ella y compártala, o utilice la línea de comandos como se indica a continuación. Supongamos que la carpeta compartida “foo” es “fooshare”, entonces podría hacer
net use x: \mycomputername\fooshare\bar\folders /persistent:no
y la unidad X: ahora apunta directamente a la carpeta “carpetas” dentro de ese recurso compartido, por lo que “x:\oldfiles\mioldfile.txt” es ahora bastante corto.
(El “/persistent:no” significa que esto no sobrevivirá al próximo reinicio y lo confundirá más adelante. No te olvides de des-compartir tu carpeta cuando termines)
Recuerda, no tienes que compartir la carpeta que contiene el archivo necesariamente, si ya está dentro de una carpeta compartida puedes simplemente mapear a través de la carpeta compartida y las carpetas anidadas a una carpeta de destino cerca del archivo y eso funciona bien.
He tenido que usar esta técnica haciendo una robocopia masiva entre dos servidores cuando nos dimos cuenta de que los usuarios habían mapeado unidades bastante profundas en la estructura de carpetas, por lo que habían podido usar 255 caracteres desde allí, pero eso excedía la longitud total de la ruta del archivo cuando se accedía desde la raíz de la unidad local.