M G Harish

Tuesday, June 19, 2007

Why can't we create a folder by name CON?

I've been asked this question many a times: Why can't we create a folder by name CON? Although it seems a wonder or magic that we can't create a folder by that name, in reality, it is not so. It has a definite reason, and in fact, a folder can be created using that reserved name.

Gone are the days when computers had only CUI OS, that is, Character User Interface Operating Systems, like MS-DOS. When I joined my first computer course nine years ago, Windows 95 was ruling. You could see Windows 98 here and there. We were in 8th standard, and working on a computer was like a dream coming true. Microsoft's Paint Brush was the only known (for us) GUI software and was the greatest means of entertainment. The instructors taught us only MS-DOS commands and how to Shut Down the computer. Remembering such weird names as DIR, CD, MD, RD, CHKDSK, FDISK, VER, ATTRIB, REN, DEL etc. along with their syntax and usage was a great accomplishment. But I had a problem understanding this: DOS has a separate dedicated command for every action; literally every action, except... creating a file!

Yes, we used COPY CON filename to create a file with name filename. Anyone can say that it is a form of COPY command. So, why was creating a file different than all other commands? I didn't understand it, till I found out how to print using DOS, almost four years later.

DOS uses different names for the attached devices, I learnt. PRN was one such name. TYPE filename would display the contents of a file and TYPE filename > PRN would print it instead of displaying. Curiosity brings many hidden matters out. PRN would surely mean Printer and will redirect the output to the printer instead of console. Console (monitor) is the implicit default output device, and it can be bypassed if needed. So, how to put it explicitly? There must be some means to do that. Yes, there is! TYPE filename > CON performs exactly same function as TYPE filename. These special names for the devices really mean something special for the operating system and those names can not be used as folder or file names: CON, PRN, NUL, COM1 to COM9, LPT1 to LPT9, which stand for CONsole, PRiNter, NULl, serial COMmmunication ports, Line PrinTer ports.

The time has changed and Operating System can also be fooled! But still, many people think that it is not possible to create a folder by name CON. Using the path of network drive, these special names can also be used as folder names! Here is how:
  1. Goto DOS
  2. Type MD \\.\C:\CON. The folder will be created. You can check it in Windows Explorer also, but you can't access it
  3. To delete the folder, type RD \\.\C:\CON
In short, use the network path syntax instead of absolute path syntax.

Now on to the practical aspect of this. Why can't we create it directly but using the network path syntax? The answer is simple. A computer can have only one default console, printer, null etc. So, if it is accessed from a network, theoretically, the console should belong to another node in the network. Since that node may not have a device which can be referred using the name CON, it will no longer be considered as a reserved name. Hence, the folder can be created.

The next time when someone asks the question why we can't create a folder by name CON, say with confidence that it is not true...

Like the post? You may want to...
Digg this

7 comments:

Anonymous said...

This is also a nice site .. with screen shots
Remove-Worm.html

Anonymous said...

I found how to create a folder or file named CON , LPT1 , COM1 etc...

STEP1: goto command prompt

STEP2: type in prompt e:\> "mkdir \\.\e:\con"

STEP3: verify by typing "dir \\.\e:\con"

STEP4: delete the file or folder "rmdir \\.\e:\con"

Harisha - ಹರೀಶ said...

@All: Welcome to my blog :-)

Samit n Aditya:
That's exactly what I have mentioned in the 3 steps :-)

Rohit Puri said...

hi this is rohit puri
if u have any queries regarding ur it u can contact to me
at r.puri2020@gmail.com

Rohit Puri said...

U can create all folder like CON PRN LPT1 and all

step 1
press alt then type 255 press the alt key when u type 255.then normally type con and etc.
it will work 100%
rohit puri

Harisha - ಹರೀಶ said...

Rohit, welcome to my blog..

In the method you mentioned, you'll be creating a folder/file with a name other than "CON".. You'll be adding an extra ASCII character.. So it's not exactly the same as pure "CON" folder/file. However, you can create it following the method mentioned in my post..

Jack Chrysler said...

http://krojamsoft.com/filecleaner.php