Pourquoi ne puis-je pas nommer un dossier ou un fichier «CON» sous Windows?

30

Dans toutes les versions de Windows, nous ne pouvons pas renommer un fichier ou un nom de dossier comme CONsans logiciel de renommage de fichiers tiers. Essayer de le faire dans Windows 7 entraîne une erreur:

Le nom du périphérique spécifié n'est pas valide.

Essayer d'enregistrer un fichier comme con.txtdans le Bloc-notes conduit à une erreur similaire:

Ce nom de fichier est réservé à l'usage de Windows.
Choisissez un autre nom et réessayez.

Pourquoi ne pouvons-nous pas nommer un fichier ou un dossier CONdans Windows?

hari
la source

Réponses:

35

"con" est le nom d'un périphérique d'E / S système, la console.

  • con
  • se tromper
  • nul

Et quelques autres, je pense.

Autrefois, il était courant sous DOS de créer un fichier (et je le fais encore de temps en temps) avec:

C:\>copy con foo.txt
I'm typing some text here.
^Z
    1 file(s) copied.
C:\>
JMD
la source
Une correction mineure: l'erreur n'est pas réservée. La liste complète des noms de périphériques réservés est: con, nul, prn, com1..9 et lpt1..9. Ils sont même réservés lorsqu'ils sont utilisés avec n'importe quelle extension (par exemple con.txt).
efotinis
« à moins d' utiliser un logiciel de renommage » A propos de la partie citée, comment le « logiciel de renommer » contourner ce qui est essentiellement un système d'exploitation limitatiom
Sathyajith Bhat
1
Tu m'as eu. Je suis sceptique sur le fait que tout "logiciel de renommage" puisse le faire. Mais si c'est le cas, je serais inquiet de pouvoir ouvrir ou même déplacer le fichier. Comme vous l'avez dit, le système d'exploitation va s'y opposer.
JMD
11
La liste principale se trouve à msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx N'utilisez pas les noms de périphériques réservés suivants pour le nom d'un fichier: CON, PRN, AUX, NUL, COM1 , COM2, COM3, COM4, ​​COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 et LPT9. Évitez également ces noms suivis immédiatement d'une extension; par exemple, NUL.txt n'est pas recommandé.
shf301
1
@Sathya: en utilisant le préfixe \\? \ Pour contourner l'analyse des noms de fichiers. Par exemple, "\\? \ C: \ con \ nul.txt".
grawity
13

CONest un nom réservé dans Windows. Ainsi sont PRN, AUX, NUL, LPT1et d' autres.

Pablo Santa Cruz
la source
2
CON est l'abréviation de console. Ouvrez une fenêtre d'invite de commande, accédez à un répertoire avec un fichier texte et tapez "copier file.txt con" Il écrira le contenu du fichier texte sur la console (la fenêtre d'invite de commande)
Keltari
12

j'ai donné cette réponse à un doublon et j'ai pensé la poster ici pour référence:

comme indiqué précédemment. c'est un mot réservé de l'arrière en MS-DOS, pour le périphérique CONsole (pour autant que je me souvienne). mais, vous pouvez forcer windows / dos à créer le dossier pour vous . pour les appareils, il utilise le format \\.\[RESERVED_WORD]pour accéder au "fichier" (ces appareils utilisaient des fichiers pour la communication). pour forcer Windows à créer votre dossier, au lieu de le faire mkdir [RESERVED_WORD], procédez comme suit:

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

par exemple, pour créer un dossier CON sur mon bureau,

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

pour supprimer le dossier, vous devez le référencer de la même manière, sinon cela ne fonctionnera pas.

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

mon conseil est cependant d'utiliser simplement un nom différent. il serait très difficile de toujours s'y référer via son chemin absolu, surtout si vous développez une application que vous prévoyez de déployer.

maranas
la source
4

En effet, il est utilisé pour représenter les «périphériques internes». Cependant, vous pouvez créer ce dossier à l'aide de la commande suivante dans une invite de commandes:

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

Ce dossier ne peut pas être supprimé via un clic droit, supprimer. Vous devez utiliser la commande suivante (à nouveau dans une invite de commande):

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

Source: http://yhisham.blogspot.in/2012/09/mystery-about-con-folder-in-windows.html

user1662177
la source
3

En plus de la réponse de Pablo Santa Cruz , voici la liste complète des mots clés utilisés par Windows en interne et réservés. Tous les éléments suivants ne sont pas sensibles à la casse

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

Vous pouvez utiliser à la _conplace

RafaSashi
la source
2

Vous pouvez le renommer sans utiliser de logiciel spécial, juste l'invite de commande:

Par exemple:

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

Après \\?\le chemin complet doit être spécifié.

Régent
la source
0

Tout comme il y a des caractères qui ne peuvent pas être utilisés dans un nom de fichier , il y a aussi plusieurs mots (noms de fichiers entiers) qui ne peuvent pas être utilisés car ils sont réservés.

Synetech
la source
0

copy conest une méthode archaïque (MS-DOS) de création d'un fichier texte. Par exemple:

copy con output.txt

Il s'agit donc d'un mot réservé et ne peut pas être utilisé comme nom de dossier sous Windows.

Mehper C. Palavuzlar
la source
0

Comme mentionné, vous pouvez créer et manipuler des fichiers et des dossiers avec des noms réservés sur la ligne de commande en utilisant un périphérique ou un espace de noms de fichiers tel que \\.\C:\NUL, mais regardez ce qui se passe lorsque vous essayez d'accéder à un tel fichier ou dossier via l'Explorateur Windows:

Erreur lors de l'ouverture du dossier nommé NUL Erreur lors de la suppression du dossier nommé NUL

Tout accès à un objet avec un nom de périphérique réservé est traité comme faisant référence au périphérique spécifié par ce nom, sauf si vous utilisez la solution de contournement d'espace de noms susmentionnée. Ces erreurs se produisent parce que Windows tente d'opérer sur eux comme si elles étaient des dossiers normaux, mais vous ne pouvez pas ouvrir un périphérique nommé NUL, CONou autrement comme un dossier , d'où l' Incorrect functionerreur (qui est similaire à l' Inappropriate ioctl for deviceerreur sur Linux).

bwDraco
la source
3
Vous avez un peu mélangé la terminologie. \\.\…est un Win32 dispositif espace de noms , \\?\…est un Win32 nom de fichier (également pour les dossiers) espace de noms , et \\compname\…est un UNC ( réseau path) .
Synetech
@Synetech: corrigé.
bwDraco