es.phhsnews.com


es.phhsnews.com / ¿Por qué los informes de Windows son esta carpeta demasiado largos para copiar?

¿Por qué los informes de Windows son esta carpeta demasiado largos para copiar?


Si trabaja con Windows lo suficiente, especialmente con carpetas y archivos con nombres largos, se encontrará con un error extraño : Windows informará que la ruta de la carpeta o el nombre del archivo es demasiado largo para moverse a un nuevo destino o incluso eliminarlo. ¿Cuál es el problema?

Hey How-To Geek!

Así que el otro día estaba reorganizando algunos archivos en mi computadora, creando carpetas, ese tipo de cosas. Luego, cuando movía algunos archivos a una carpeta, recibí un mensaje que decía que la ruta de la carpeta resultante sería demasiado larga. Estaba confundido. Sé que cada sistema operativo desde DOS admite nombres de archivo largos, pero Windows afirma que la ruta es demasiado larga. ¿Por qué sucede esto?

Sincerly,

Mr. Desorganizado

El problema al que se está enfrentando es una desafortunada intersección de dos sistemas que, en casos como este, produce un error. Para entender exactamente de dónde viene el error, necesitamos profundizar en el historial de los nombres de archivo largos (LFN) y cómo Windows interactúa con ellos antes de profundizar en las soluciones.

Se introdujeron los nombres de archivo largos, a través de la arquitectura subyacente de MS-DOS , en Windows 95. El nuevo sistema LFN permitía nombres de archivos y directorios de hasta 255 caracteres. Esta fue una expansión bienvenida del sistema anterior de nombre de archivo, generalmente llamado 8.3 filenaming porque el nombre estaba limitado a ocho caracteres y una extensión de tres dígitos, pero también conocido como nombre corto de archivo (SFN). Como se puede imaginar, en aquel entonces todavía había muchas aplicaciones basadas en DOS y había más que unos pocos dolores de cabeza tratando de hacer que los nuevos LFN y los SFN heredados jugaran bien entre ellos. Si alguna vez se encontró con un disquete o CD-ROM anterior con archivos extrañamente truncados (como abcdef ~ 1.txt) ese nombre de archivo fue cortado por alguna aplicación heredada que usaba SFN de un LFN más largo y sin soporte (como abcdefghijk. txt).

Sin embargo, estamos muy lejos de mediados de la década de 1990, y todo el asunto de Long Filename está (en su mayor parte) firmemente resuelto. Si está ejecutando una versión de Windows de los últimos 10 años, probablemente nunca haya encontrado un conflicto de longitud de nombre de archivo como el que solíamos encontrar en los días DOS / Windows 95. Dicho esto, todavía encontramos hipo, como descubriste con tu proyecto de limpieza de disco. ¿Pero por qué? Si el sistema Long Filename de Windows admite carpetas y nombres de archivos de hasta 255 caracteres por componente, ¿con qué pared se está ejecutando? No podemos culpar a NTFS (el sistema de archivos que usa la gran mayoría de las máquinas modernas de Windows) ya que NTFS admitirá un encadenamiento de carpetas y nombres de archivos de hasta una longitud total de ruta de 32.767 caracteres. Eso supera con creces la típica estructura de directorios que la mayoría de los usuarios necesitarían.

Donde todo se derrumba es una restricción artificial que apila Windows sobre el sistema LFN / NTFS: la variable MAX_PATH. La variable MAX_PATH especifica que una estructura de directorio completa en Windows no puede exceder los 260 caracteres en total, incluida la letra de la unidad, los dos puntos, la barra invertida y el juego nulo al final. Por lo tanto, solo tiene una potencial MAX_PATH real de 256 caracteres, por ejemplo, C: your-256-character-path .

Entonces, ¿qué pasó cuando estaba limpiando su computadora? con una ruta ya larga (ya sea porque los nombres de las carpetas eran largos, los nombres de los archivos eran largos o ambos), y cuando intentaba mover uno o más de esos directorios a otro directorio con una ruta larga, la longitud total de la ruta name excedió el límite de 260 caracteres impuesto por la variable MAX_PATH.

Ahora, puedes estar pensando "Ah-hah! ¡Simplemente cambiaremos la variable MAX_PATH y resolveremos el problema! "Desafortunadamente, no es tan simple. La variable MAX_PATH no solo está esencialmente codificada en Windows, sino que incluso si pasas por la enorme molestia de cambiarla, terminarías rompiendo tanto que no valdría la pena. Demasiadas aplicaciones esperan que la variable de ruta sea lo que Windows ha especificado por mucho tiempo. No podemos simplemente cambiarlo sin crear un desastre enorme.

¿Dónde te deja eso? Bueno, la solución más simple es simplemente editar los datos de ruta. Por ejemplo, si tiene una tonelada de artículos guardados donde la aplicación / extensión que utilizó para guardarlos de la web creó un directorio que era el título completo del artículo + el artículo líder, y luego el nombre del archivo en sí es el título completo del artículo + el plomo del artículo, sería muy simple llegar o superar el MAX_PATH con un solo guardado. La edición de esos enormes títulos de carpetas y artículos a un tamaño más razonable es una manera fácil de solucionar el problema.

Si tiene una gran cantidad de archivos con una ruta larga y no quiere editarlos todos (o si Si desea eliminar una tonelada de directorios antiguos que son demasiado largos para que Windows los trate cuando están restringidos por la variable MAX_PATH, existe una línea de comandos que funciona. Aunque Windows está restringido por la variable MAX_PATH, los ingenieros de Windows se dieron cuenta de que habría situaciones en las que los usuarios necesitarían tratar con nombres de ruta más largos. Como tal, la API de Windows tiene una función para manejar rutas extremadamente largas.

Para aprovechar esa API y usar herramientas de línea de comandos en sus carpetas / nombres de archivos poco manejables, simplemente necesita anexar el nombre del directorio con una algunos personajes extra Por ejemplo, si tenía una enorme estructura de directorios que quería eliminar (pero recibió un error debido a la longitud de la ruta cuando lo intentó), puede cambiar el comando desde:

rmdir c: documents some-really -super-long-folder-name-scheme

to:

rmdir \? c: documents some-really-super-long-folder-name-scheme

La clave es Además de la porción\? antes del inicio de la ruta del archivo; esto instruye a Windows para que no tenga en cuenta las limitaciones impuestas por la variable MAX_PATH e interactúe con la ruta que acaba de proporcionar, tal como la proporciona / entiende directamente el sistema de archivos subyacente (que puede admitir claramente una ruta más larga). Como siempre, tenga precaución en el símbolo del sistema para evitar borrar accidentalmente los archivos o directorios que tenía la intención de dejar intactos.

Si nuestra visión general de este tema lo tiene curioso, definitivamente investigue este artículo de la biblioteca Microsoft Developer Network, Naming Files, Rutas y Espacios de nombres, para obtener más información sobre lo que sucede bajo el capó.


¿Tiene una pregunta tecnológica apremiante? Mándenos un correo electrónico a y haremos nuestro mejor esfuerzo para responderlo.


Cómo borrar el historial de terminales en Linux o macOS

Cómo borrar el historial de terminales en Linux o macOS

Presione la flecha "arriba" en la línea de comandos de Mac o Linux y verá el último comando que ejecutó. Sigue presionando "arriba" y verás más comandos; puede retroceder días, meses o incluso años. Esto se conoce como su historia, y es muy conveniente. Si cometió un error al escribir un comando largo, simplemente presione "arriba" y solucione el problema.

(how-to)

Cómo reclamar un negocio existente en Yahoo Local

Cómo reclamar un negocio existente en Yahoo Local

Si tiene una pequeña empresa, probablemente la tenga lista en Yahoo Local, Google Local, MapQuest local, Yelp y muchos otros sitios de servicio local. Dirijo un pequeño taller de reparación de computadoras fuera de mi casa y hago algún trabajo para clientes aquí y allá cuando tengo tiempo libre.Comen

(How-to)