Los nombres de archivo son demasiado largos y Windows no puede abrir los archivos

12

Hay un montón de archivos en una unidad de red, en una ruta bastante profunda y la mayoría de los directorios tienen nombres largos. Creo que estos se crearon originalmente cuando alguien copió y pegó el directorio raíz de este grupo de archivos desde su estación de trabajo local a la unidad de red compartida. Me imagino que en la estación de trabajo local, no hubo problemas para abrir el archivo, pero ahora que están en una ruta más larga en la red, Windows no puede abrirlos cuando hago doble clic. También he intentado copiar los archivos y cambiarles el nombre a algo más corto, pero Windows tampoco puede hacerlo.

TL; DR

archivos de la estación de trabajo de alguien en una ruta (hipotética) como esta:

C:\Documents and Settings\SomeUser\Files\RootOfLongFileNames\LongSubdirectoryName1\...\VeryLongAndDescriptiveAndSpecificFilename.xls
-----------------------------------------^

ahora se ha copiado y pegado en la red de esta manera:

Q:\Dir1\Dir2\ProjectA\FilesForSomething\SomeotherDirectory\Blahblah\RootOfLongFileNames\LongSubdirectoryName1\...\VeryLongAndDescriptiveAndSpecificFilename.xls
---------------------------------------------------------------------^

Y el camino ahora es demasiado largo para que Windows XP lo maneje.

¿Algún consejo sobre cómo puedo leer estos archivos?

FrustratedWithFormsDesigner
fuente
@bZezzz: Parece que funcionaría archivo por archivo, pero estoy buscando qué hacer para que todos sean accesibles de una vez. Copiar a estaciones de trabajo locales estaría bien, pero los nombres largos de archivo deben conservarse (proporcionan un contexto muy específico para el contenido del archivo). Además, muchos usuarios aquí no son lo suficientemente técnicos como para comenzar a abrir archivos desde la línea de comandos. Su sugerencia podría funcionar para mí y para otra persona.
FrustratedWithFormsDesigner

Respuestas:

7

Intente sustituir la ruta con SUBST.EXE. Viene con Windows:

C:\Users\shufler>subst /?
Associates a path with a drive letter.

SUBST [drive1: [drive2:]path]
SUBST drive1: /D

  drive1:        Specifies a virtual drive to which you want to assign a path.
  [drive2:]path  Specifies a physical drive and path you want to assign to
                 a virtual drive.
  /D             Deletes a substituted (virtual) drive.

Type SUBST with no parameters to display a list of current virtual drives.

Lo que desea hacer es sustituir una de las carpetas de la cadena por una letra de unidad:

 C:\>subst X: Q:\Dir1\Dir2\ProjectA\FilesForSomething\SomeotherDirectory\Blahblah\RootOfLongFileNames\LongSubdirectoryName1

Ahora se accede a la carpeta LongSubdirectoryName1 en la unidad X:. Cuando haya terminado, puede eliminar su sustitución consubst X: /D

Si necesita esto todo el tiempo, agréguelo a su secuencia de comandos de inicio de sesión.

Otro enfoque sería mapear un disco más abajo de la cadena desde donde Q: está mapeado.

shufler
fuente
2
Recientemente me he enfrentado mucho a este problema y he usado el enfoque SUBST. Para ese propósito, he encontrado que la herramienta Visual Subst disponible en ntwind.com/software/utilities/visual-subst.html es invaluable.
yosh m
6

Deberá cambiar el nombre de los nombres de directorio en la ruta hasta que el nombre sea lo suficientemente corto para que el sistema operativo pueda acceder.

Navegaría a la primera carpeta cuyo nombre puede modificar y cambiarle el nombre a una sola letra y luego haría lo mismo para cada carpeta subsiguiente hasta llegar al archivo necesario.

Con respecto a la necesidad de mantener la estructura: existen limitaciones dentro de las cuales tenemos que trabajar en los sistemas operativos, y no es bueno operar rutinariamente fuera de esos parámetros. Cualquier solución rápida ahora solo será un parche que deberá volver a ejecutarse en el futuro. Una solución verdadera implicará reorganizar la estructura del directorio de modo que este problema extremadamente largo de ruta de carpeta / nombre de archivo ya no sea necesario.

music2myear
fuente
256 caracteres
bZezzz
No, necesitan usar un programa que NO sea el Explorador de Windows, porque el Explorador de Windows no tiene en cuenta las especificaciones del sistema de archivos y opta por apegarse al mínimo común denominador, lo que hace imposible, por ejemplo, simplemente copiar la raíz existente de una unidad a la raíz de otra unidad idéntica (en capacidad, formato, etc.) sin encontrarse con errores PATH TOO LONG.
Triynko
0

EDITAR: Originalmente sugerí usar robocopy, pero por supuesto esto es XP y eso no lo tiene preinstalado.

No hay forma de que pueda "dar a todos lo que quieren" Si la ruta del archivo es demasiado larga, no podrá realizar ninguna operación de archivo con ella. A mi modo de ver, tienes algunas opciones:

  1. Siga los pasos de las otras publicaciones y cambie el nombre de los directorios hasta que sean cortos. Lo bueno de las computadoras es que puedes escribir un script para no solo hacer esto por ti, sino también para hacer un seguimiento de cuáles eran los nombres originales. Incluso con una secuencia de comandos, es probable que esto lleve algo de tiempo.

  2. Obtenga un LiveCD de Linux. Póngalo en la computadora y arranque desde ese CD. Ve a ver el disco de Windows que se montará automáticamente como un sistema de archivos separado. Obtenga todos los archivos que desee y colóquelos en una nueva carpeta en su escritorio. Comprima esa carpeta y colóquela en un disco duro externo o una memoria USB o, si su unidad de red permite copiar de nuevo al sistema de archivos, muévala a un directorio de nivel superior.

agua
fuente
No tengo robocopy instalado y no estoy seguro de tener acceso para instalarlo (es una computadora de trabajo). Además, esto suena como mucho trabajo para cada archivo. Mi ejemplo fue simplificado: en realidad hay varios directorios en varios niveles demasiado profundos, cada uno con archivos que ahora son inaccesibles debido a problemas de ruta demasiado larga. Realmente no tengo tiempo para hacer esto para todos los archivos que todos quieren.
FrustratedWithFormsDesigner