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


30

Em todas as versões do Windows, não podemos renomear um arquivo ou um nome de pasta, pois CONsem o software de renomeação de arquivos de terceiros. Tentar fazer isso no Windows 7 resulta em um erro:

O nome do dispositivo especificado é inválido.

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

Este nome de arquivo está reservado para uso pelo Windows.
Escolha outro nome e tente novamente.

Por que não podemos nomear um arquivo ou pasta CONno Windows?


Respostas:


35

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

  • vigarista
  • errar
  • nul

E mais alguns, 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:\>

Uma pequena correção: err não está reservado. A lista completa de nomes de dispositivos reservados é: con, nul, prn, com1..9 e lpt1..9. Eles são reservados até quando usados ​​com qualquer extensão (por exemplo con.txt).
Efotinis 23/12/2009

"a menos que nós usamos um software renomeação" Sobre a parte citada, como o "software renomear" ficar em torno do que é essencialmente um limitatiom OS
Sathyajith Bhat

1
Você me pegou. Sou cético quanto ao fato de qualquer "software de renomeação" poder fazer isso. Mas, se puder, eu ficaria preocupado em poder abrir ou até mover o arquivo. Como você disse, o sistema operacional terá problemas com isso.
JMD

11
A lista principal está em msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx Não use os seguintes nomes de dispositivos reservados para o nome de um arquivo: CON, PRN, AUX, NUL, COM1 , COM2, COM3, COM4, ​​COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 e LPT9. Evite também esses nomes seguidos imediatamente por uma extensão; por exemplo, NUL.txt não é recomendado.
Shf301

1
@Athya: usando o prefixo \\? \ Para ignorar a análise do nome do arquivo. Por exemplo, "\\? \ C: \ con \ nul.txt".
grawity

13

CONé um nome reservado no Windows. Portanto, são PRN, AUX, NUL, LPT1e outros.


2
CON é a abreviação de console. Abra uma janela do prompt de comando, navegue até um diretório com um arquivo de texto e digite "copy file.txt con". Ele
gravará

12

Dei essa resposta a uma duplicata e pensei em publicá-la aqui para sua referência:

como indicado anteriormente. é uma palavra reservada no MS-DOS, para o dispositivo CONsole (tanto quanto me lembro). mas você pode forçar janelas / dos a criar a pasta para você . para dispositivos, ele usa o formato \\.\[RESERVED_WORD]para acessar o "arquivo" (esses dispositivos usavam 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 uma pasta CON na minha área de trabalho,

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

Para excluir a pasta, você deve fazer referência à mesma, ou ela não funcionará.

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

meu conselho, porém, é usar apenas um nome diferente. seria muito difícil sempre consultá-lo por seu caminho absoluto, especialmente se você estiver desenvolvendo um aplicativo que planeja implantar.



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 não diferenciam maiúsculas de minúsculas

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

Você pode usar _conem vez


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.


0

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


0

copy coné um método arcaico (MS-DOS) de criar 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.


0

Como mencionado, você pode criar e manipular arquivos e pastas com nomes reservados na linha de comando usando um espaço para nome de dispositivo ou nome de arquivo, como por exemplo \\.\C:\NUL, mas observe o que acontece quando você tenta acessar esse arquivo ou pasta através do Windows Explorer:

Erro ao abrir a pasta chamada NUL Erro ao excluir a pasta chamada NUL

Qualquer acesso a um objeto com um nome de dispositivo reservado é tratado como uma referência ao dispositivo especificado por esse nome, a menos que você use a solução alternativa de espaço para nome acima mencionada. Esses erros ocorrem porque o Windows está tentando operar sobre eles como se fossem pastas normais, mas você não pode abrir um dispositivo chamado NUL, CONou de outra forma como uma pasta, por isso o Incorrect functionerro (que é semelhante ao Inappropriate ioctl for deviceerro no Linux).


3
Você misturou um pouco a terminologia. \\.\…é um espaço para nome do dispositivo Win32 , \\?\…é um espaço para nome do arquivo Win32 (também para pastas) e \\compname\…é um caminho UNC ( rede ) .
Synetech 26/09/12

@ Synetech: corrigido.
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.