¿Por qué no puedo nombrar una carpeta o archivo 'CON' en Windows?


30

En todas las versiones de Windows, no podemos cambiar el nombre de un archivo o una carpeta como CONsin un software de cambio de nombre de terceros. Intentar hacer esto en Windows 7 produce un error:

El nombre del dispositivo especificado no es válido.

Intentar guardar un archivo como con.txten el Bloc de notas conduce a un error similar:

Este nombre de archivo está reservado para su uso por Windows.
Elija otro nombre e intente nuevamente.

¿Por qué no podemos nombrar un archivo o carpeta CONen Windows?


Respuestas:


35

"con" es el nombre de un dispositivo de E / S del sistema, la consola.

  • estafa
  • errar
  • nul

Y un par más, creo.

En los viejos tiempos, era común en DOS crear un archivo (y todavía hago esto ocasionalmente) con:

C:\>copy con foo.txt
I'm typing some text here.
^Z
    1 file(s) copied.
C:\>

Una corrección menor: err no está reservado. La lista completa de nombres de dispositivos reservados es: con, nul, prn, com1..9 y lpt1..9. Incluso están reservados cuando se usan con cualquier extensión (por ejemplo con.txt).
efotinis

"a menos que se utiliza un software de cambio de nombre" Sobre la parte citada, ¿cómo el "software de cambiar el nombre de" moverse por lo que es esencialmente un limitatiom OS
Sathyajith Bhat

1
Me tienes. Soy escéptico de que cualquier "software de cambio de nombre" pueda hacerlo. Pero si puede, me preocuparía poder abrir o incluso mover el archivo. Como dijiste, el sistema operativo va a tener problemas con él.
JMD

11
La lista maestra se encuentra en msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx No use los siguientes nombres de dispositivo reservados para el nombre de un archivo: CON, PRN, AUX, NUL, COM1 , COM2, COM3, COM4, ​​COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 y LPT9. También evite estos nombres seguidos inmediatamente por una extensión; por ejemplo, NUL.txt no se recomienda.
shf301

1
@Sathya: Al usar el prefijo \\? \ Para omitir el análisis del nombre de archivo. Por ejemplo, "\\? \ C: \ con \ nul.txt".
Grawity

13

CONes un nombre reservado en Windows. Así son PRN, AUX, NUL, LPT1y otros.


2
CON es la abreviatura de consola. Abra una ventana del símbolo del sistema, navegue a un directorio con un archivo de texto y escriba "copy file.txt con". Escribirá el contenido del archivo de texto en la consola (la ventana del símbolo del sistema)
Keltari

12

Di esta respuesta a un duplicado y pensé en publicarla aquí para su referencia:

Como se dijo anteriormente. es una palabra reservada desde atrás en MS-DOS, para el dispositivo CONsole (hasta donde puedo recordar). pero puede forzar windows / dos para que cree la carpeta por usted . para dispositivos, utiliza el formato \\.\[RESERVED_WORD]para acceder al "archivo" (estos dispositivos utilizan archivos para la comunicación). para forzar a Windows a crear su carpeta, en lugar de hacerlo mkdir [RESERVED_WORD], haga lo siguiente:

mkdir \\.\[absolute path to folder of choice, including drive letter]\[RESERVED_WORD]

por ejemplo, para crear una carpeta CON en mi escritorio,

mkdir \\.\C:\Users\me\Desktop\CON

Para eliminar la carpeta, debe hacer referencia a ella de la misma manera, de lo contrario no funcionará.

rmdir \\.\C:\Users\me\Desktop\CON

Mi consejo es usar un nombre diferente. sería muy difícil referirse siempre a él a través de su ruta absoluta, especialmente si está desarrollando una aplicación que planea implementar.



3

Además de la respuesta de Pablo Santa Cruz , aquí está la lista completa de palabras clave utilizadas internamente por Windows y que están reservadas. Todos los siguientes son mayúsculas y minúsculas

  • ESTAFA
  • PRN
  • AUX
  • COM1, COM2, COM3, COM4, ​​COM5, COM6, COM7, COM8, COM9, COM0
  • LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, LPT0

Puedes usar _conen su lugar


2

Puede cambiarle el nombre sin usar ningún software especial, solo el símbolo del sistema:

Por ejemplo:

C:\>echo Test > \\?\C:\con
C:\>type \\?\C:\con
Test
C:\>rename \\?\C:\con test.txt
C:\>type test.txt
Test

Después se \\?\debe especificar la ruta completa.


0

Al igual que hay caracteres que no se pueden usar en un nombre de archivo , también hay varias palabras (nombres de archivo completos) que no se pueden usar porque están reservados.


0

copy cones un método arcaico (MS-DOS) para crear un archivo de texto. Por ejemplo:

copy con output.txt

Por lo tanto, es una palabra reservada y no se puede usar como nombre de carpeta en Windows.


0

Como se mencionó, puede crear y manipular archivos y carpetas con nombres reservados en la línea de comando utilizando un dispositivo o un espacio de nombre de nombre de archivo como \\.\C:\NUL, pero observe lo que sucede cuando intenta acceder a dicho archivo o carpeta a través del Explorador de Windows:

Error al abrir la carpeta llamada NUL Error al eliminar la carpeta llamada NUL

Cualquier acceso a un objeto con un nombre de dispositivo reservado se trata como una referencia al dispositivo especificado por ese nombre, a menos que utilice la solución alternativa de espacio de nombres mencionada anteriormente. Estos errores se producen porque Windows está tratando de operar en ellos como si fueran carpetas normales, pero no se puede abrir un dispositivo llamado NUL, CONo de otra manera como una carpeta de ahí el Incorrect functionerror (que es similar a la Inappropriate ioctl for devicede error en Linux).


3
Has mezclado un poco la terminología. \\.\…es un espacio de nombres de dispositivo Win32 , \\?\…es un espacio de nombres de nombre de archivo Win32 (también para carpetas) y \\compname\…es una ruta UNC ( red ) .
Synetech

@Synetech: corregido.
bwDraco
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.