Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When I try to save a file, if I use special characters in the name (such as a colon, question mark, or exclamation point) in Windows I get a message saying that the file name is invalid.

Why is that?

share|improve this question
In which program are you trying to save a file, and is the offending character in the file or (as it seems) in the filename? – Jukka K. Korpela Dec 27 '13 at 17:00

There are several characters that have special meaning to Windows (and to DOS, where most of the characters originally came from)

from MSDN:

A filename cannot contain any of the following characters:
\ / : * ? " < > |

/ is a switch (and also a directory separator).
\ is a directory separator.
: is a drive designator.
* and ? are wildcards used in searching.
" is a way to allow spaces in parameters.
< and > are redirection that allow input and output of a program to come from, and go to, something other than screen/keyboard.
| is a pipe that allows output from one program to be used as input to the next

share|improve this answer
To clarify this answer, these special characters could interfere with parsing a command line (or path) if they were in a filename. There is no requirement to delimit the filename in any way (e.g. surround it with quotes or spaces), so encountering such a special char would cause incorrect parsing (i.e is the special char part of the filename or an operator?). – sawdust Dec 27 '13 at 20:41
It is, however, arguable that some of these restrictions are no longer necessary due to the handling of long filenames and quotations marks. \ ? * and " are the only ones really necessary in the current syntax, as the other characters are only useful outside of quotation marks. The exception is : which is only useful as the second character, which could be outlawed while allowing it elsewhere. In other words, no file named A:A letter's story.txt, but no problem with a file named Sarah: My favorite cat.txt – trlkly Jun 5 '14 at 23:41

You must log in to answer this question.

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