56

In all versions of Windows, we are unable to rename a file or a folder name as CON without third-party file renaming software. Trying to do this in Windows 7 results in an error:

The specified device name is invalid.

Trying to save a file as con.txt in Notepad leads to a similar error:

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

Why can't we name a file or folder CON in Windows?

3
  • 6
  • The answers to this often duplcated question always tell you it's because of reserved words, but not why they're reserved. MS thought it would be easier to make these special files/devices available globally, rather than prefix them like other systems, e.g. *nix's /dev/null. Backwards compatibility from ancient systems still causing trouble today.
    – Walf
    Jul 31, 2020 at 5:46
  • This answer describes more in detail what these special device names are and their history. May 1, 2022 at 0:50

9 Answers 9

55

"con" is the name of a system I/O device, the console.

  • con
  • nul

And a couple others, I think.

In the old days it was common in DOS to create a file (and I still do this occasionally) with:

C:\>copy con foo.txt
I'm typing some text here.
^Z
    1 file(s) copied.
C:\>
5
  • 1
    "unless we use a renaming software" About the quoted part, how do the "renaming software" get around what is essentially an OS limitatiom
    – Sathyajith Bhat
    Dec 23, 2009 at 19:57
  • 2
    You got me. I'm sceptical that any "renaming software" can even do it. But if it can, I'd be worried about being able to open or even move the file. As you said, the OS is going to take issue with it.
    – JMD
    Dec 23, 2009 at 20:32
  • 16
    The master list is at msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx Do not use the following reserved device names for the name of a file: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9. Also avoid these names followed immediately by an extension; for example, NUL.txt is not recommended.
    – shf301
    Dec 24, 2009 at 17:07
  • @Sathya, please try this command yourself, as it suffers the same error as the OP's concern about "con": ren foo.txt err. "err" is not a reserved device name, but it is reserved nonetheless. :)
    – JMD
    Jan 5, 2010 at 16:53
  • 2
    @Sathya: By using the \\?\ prefix to bypass file name parsing. For example, " \\?\C:\con\nul.txt ". Aug 26, 2011 at 17:29
17

I gave this answer to a duplicate, and thought I'd post it here for your reference:

As previously stated. It's a reserved word from back in MS-DOS, for the CONsole device (as far as I can remember). But, you can force Windows/dos to create the folder for you. For devices, it uses the format \\.\[RESERVED_WORD] to access the "file" (these devices used files for communication). To force Windows to create your folder, instead of doing mkdir [RESERVED_WORD], do the following:

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

For example, to create CON folder on my desktop,

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

To delete the folder, you have to reference it the same way, or else it won't work.

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

My advice though is to just use a different name. It would be very difficult to always refer to it via its absolute path, especially if you are developing an app you plan on deploying.

1
  • can you use a similar approach to create e.g. con.txt ? Aug 11, 2020 at 4:57
16

CON is a reserved name in Windows. So are PRN, AUX, NUL, LPT1 and others.

1
  • 6
    CON is short for console. Open a command prompt window, navigate to a directory with a text file and type "copy file.txt con" It will write the contents of the text file to the console (the command prompt window)
    – Keltari
    Sep 12, 2012 at 18:45
6

This is because it is used to represent the "internal devices". However, you can create this folder using the following command in a command prompt:

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

This folder can't be deleted via right click, delete. You have to use the following command (again in a command prompt):

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

Source

5

You can rename it without using any special software, just the command prompt:

For example:

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

After \\?\ the full path should be specified.

3

Extending Pablo Santa Cruz's answer, here is the full list of keywords that are used by Windows internally and are reserved.  As with all Windows filenames, the following are case insensitive.

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

Source: The specified device name is invalid at Microsoft Docs.

You can use _con instead.

2
  • 1
    COM0 and LPT0 are also reserved. Jul 27, 2020 at 8:25
  • @DonaldDuck Thanks for the info, I have edited the answer
    – RafaSashi
    Jul 28, 2020 at 5:21
0

Just like there are characters that cannot be used in a filename, there are also several words (whole filenames) that cannot be used because they are reserved.

0

As mentioned, you can create and manipulate files and folders with reserved names on the command line by using a device or filename namespace such as \\.\C:\NUL, but look at what happens when you try to access such a file or folder through Windows Explorer:

Error opening folder named NUL Error deleting folder named NUL

Any access to an object with a reserved device name is treated as referring to the device specified by that name, unless you use the aforementioned namespace workaround. These errors occur because Windows is attempting to operate on them as if they were normal folders, but you can't open a device named NUL, CON, or otherwise as a folder—hence the Incorrect function error (which is similar to the Inappropriate ioctl for device error on Linux).

2
-1

copy con is an archaic (MS-DOS) method of creating a text file. For example:

copy con output.txt

So it is a reserved word and cannot be used as a folder name in Windows.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .