Windows «reserva» ciertos nombres de archivos y no le permite usarlos en ningún lugar. Olvídese de llamar a un archivo «con.txt» o «aux.mp3». Todo debido a una elección hecha en 1974 y la sed de Microsoft de eterna compatibilidad con versiones anteriores.
Nombres de archivo que no puede usar
Microsoft proporciona una lista oficial de nombres de archivo reservados, y aquí están:
CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 y LPT9
Tenga en cuenta que no puede utilizar estos nombres de archivo con una extensión de archivo. Por lo tanto, no puede nombrar un archivo «con.txt», «con.jpg», «o» con.doc «. Y Windows no distingue entre mayúsculas y minúsculas, por lo que no importa si es CON, con o CoN, Windows no le permitirá usar ese nombre.
Puede probarlo usted mismo. Intente guardar un archivo con el nombre «con.txt» o «lpt6.txt» en el Bloc de notas. O intente cambiar el nombre de cualquier archivo a cualquiera de estos nombres en el Explorador de archivos. Windows simplemente no le permitirá hacer esto.
Por supuesto, Windows también restringe los nombres de archivo de otras formas. Tampoco puede utilizar varios caracteres especiales como los siguientes en los nombres. Consulte al funcionario de Microsoft Documentación para más información.
¿Qué sucedió en 1974 y por qué debería importarnos?
Es 2018 y este mensaje de error es un error de 1974.
Esta limitación, que todavía se puede encontrar en la última versión de Windows 10, se remonta a ANTES DE STAR WARS. Este error es tan antiguo como Watergate. pic.twitter.com/pPbkZiE57t
– foone (@Foone) 3 de noviembre de 2018
Como @Foone Explicado recientemente en Twitter, este problema se remonta a 1974. En UNIX, “todo es un archivo”. (Lo mismo ocurre en los sistemas operativos similares a UNIX como Linux en la actualidad). Los dispositivos de hardware se representaban mediante rutas especiales como / dev / lp0 para la primera impresora y / dev / tty para la consola.
En 1974, este mismo concepto se agregó al sistema operativo CP / M. Desafortunadamente, CP / M fue diseñado para computadoras con muy poca memoria y sin disco duro. Utilizaba varios discos y ningún directorio, por lo que estos archivos especiales que representaban dispositivos aparecían en todas partes, en todos los discos.
Entonces, cuando guardó un archivo de texto, podría decirle a su editor de texto que lo «guarde» en el dispositivo de impresión, que lo imprimirá. Pero a los editores de texto y otros programas les gusta agregar extensiones de archivo como «.txt», por lo que CP / M simplemente ignoró la extensión de archivo para estos archivos de dispositivo. En otras palabras, si un editor de texto intenta guardar un archivo con el nombre del dispositivo de impresión seguido de «.txt», CP / M simplemente ha asumido que se refiere al dispositivo de impresión y ha ignorado la extensión del archivo. Ahora la función funcionaba bien en todas las aplicaciones, ¡genial!
Claro, es un truco sucio, pero ¿a quién le importa? Bueno, CP / M lo entendió. Finalmente, llegó PC-DOS y retuvo esta útil funcionalidad CP / M. PC-DOS 2.0 agregó directorios en 1983, pero Microsoft eligió hacer que estos archivos de dispositivo aparecieran en todos los directorios para garantizar la compatibilidad con el software DOS existente en lugar de colocarlos en una carpeta de dispositivo especial.
Finalmente llegó Windows 95 y fue construido en DOS. Windows NT no estaba basado en DOS, pero quería ser compatible con las aplicaciones de Windows 95. Windows 10 todavía se basa en Windows NT y funciona igual. Lo mismo se aplica a Windows 7, por supuesto.
Ahora han pasado más de cuarenta años y todavía no podemos nombrar los archivos «con.txt» o «aux.mp3» porque Windows quiere seguir siendo compatible con los programas más antiguos que podrían usar esta función. Este es un buen ejemplo del intenso compromiso de Microsoft con la compatibilidad con versiones anteriores.
Poner al día: Nos dijeron que CP / M originalmente requería dos puntos finales; en otras palabras, en lugar de «CON», tenía que escribir «CON:». Aparentemente, el problema realmente comenzó en 1981 con el lanzamiento de MS-DOS y PC-DOS, que eliminó el requisito de dos puntos. En DOS, puede utilizar «CON» en lugar de «CON:». Entonces, tal vez DOS tenga más culpa de esto que CP / M.