Por que não consigo nomear uma pasta ou arquivo 'CON' no Windows?

27

Em todas as versões do Windows, não é possível renomear um nome de pasta ou arquivo como CON sem o software de renomeação de arquivos de terceiros. Tentando fazer isso no Windows 7 resulta em um erro:

The specified device name is invalid.

Tentar salvar um arquivo como con.txt no Bloco de Notas leva a um erro semelhante:

This file name is reserved for use by Windows.
Choose another name and try again.

Por que não podemos nomear um arquivo ou uma pasta CON no Windows?

    
por hari 23.12.2009 / 19:08

9 respostas

32

"con" é o nome de um dispositivo de E / S do sistema, o console.

  • con
  • err
  • nul

E alguns outros, eu acho.

Antigamente, era comum no DOS criar um arquivo (e ainda faço isso ocasionalmente) com:

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

CON é um nome reservado no Windows. Então, são PRN , AUX , NUL , LPT1 e outros.

    
por 12.09.2012 / 20:35
11

Eu dei essa resposta para uma segunda via e pensei em postar aqui para sua referência:

como indicado anteriormente. é uma palavra reservada de volta no MS-DOS, para o dispositivo CONsole (tanto quanto me lembro). mas, você pode forçar o windows / dos a criar a pasta para você . para dispositivos, usa o formato \.\[RESERVED_WORD] para acessar o "arquivo" (esses dispositivos usam arquivos para comunicação). Para forçar o Windows a criar sua pasta, em vez de fazer mkdir [RESERVED_WORD] , faça o seguinte:

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

por exemplo, para criar a pasta CON na minha área de trabalho,

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

para excluir a pasta, você deve referenciá-la da mesma maneira ou não funcionará.

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

meu conselho, porém, é apenas usar um nome diferente. seria muito difícil sempre se referir a ela por meio de seu caminho absoluto, especialmente se você estiver desenvolvendo um aplicativo que planeja implantar.

    
por 09.04.2010 / 19:45
4

Isso é porque é usado para representar os "dispositivos internos". No entanto, você pode criar essa pasta usando o seguinte comando em um prompt de comando:

C:\>md \.\e:\con

Esta pasta não pode ser excluída via clique direito, delete. Você precisa usar o seguinte comando (novamente em um prompt de comando):

C:\>rd \.\e:\con

Fonte: link

    
por 12.09.2012 / 20:51
3

Além da resposta de Pablo Santa Cruz , aqui está a lista completa de palavras-chave usadas internamente pelo Windows e são reservadas. Todos os itens a seguir são insensíveis a maiúsculas / minúsculas

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

Você pode usar _con

    
por 24.11.2014 / 21:11
2

Você pode renomeá-lo sem usar nenhum software especial, apenas o prompt de comando:

Por exemplo:

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

Após \?\ , o caminho completo deve ser especificado.

    
por 09.04.2010 / 13:43
0

Assim como há caracteres que não podem ser usados em um nome de arquivo , há também várias palavras (nomes de arquivos inteiros ) que não podem ser usados porque são reservados.

    
por 23.12.2009 / 19:21
0

copy con é um método arcaico (MS-DOS) de criação de um arquivo de texto. Por exemplo:

copy con output.txt

Portanto, é uma palavra reservada e não pode ser usada como um nome de pasta no Windows.

    
por 23.12.2009 / 19:28
0

Como mencionado, você pode criar e manipular arquivos e pastas com nomes reservados na linha de comando usando um nome de dispositivo ou nome de arquivo como \.\C:\NUL , mas veja o que acontece quando você tenta acessar um arquivo ou pasta como Windows Explorer:

Qualquer acesso a um objeto com um nome de dispositivo reservado é tratado como referindo-se ao dispositivo especificado por esse nome, a menos que você use a solução alternativa de namespace mencionada anteriormente. Esses erros ocorrem porque o Windows está tentando operá-los como se fossem pastas normais, mas não é possível abrir um dispositivo chamado NUL , CON ou de outra forma como uma pasta - daí o erro Incorrect function (que é semelhante ao erro Inappropriate ioctl for device no Linux).

    
por 26.09.2012 / 06:47