One of the error messages I received recently refereed me to a file in the
Yet, when I go looking in Windows Explorer, I see nothing like that
anywhere. What’s up?
In a word: backwards compatibility.
OK, that’s two words.
What you’re seeing is the result of a legacy that dates back to Window’s
That path is there – it’s just called something else.
Become a Patron of Ask Leo! and go ad-free!
Without trying to sound like the old computer fogey that I actually am,
“back in the day” MS-DOS only supported filenames that were at most 8
characters long, followed by an “extension” of up to 3 characters, and could
not include certain characters like spaces. Colloquially it’s often refereed to
as 8.3 or eight-dot-three, and one valid example might be “explorer.exe”.
At this point I need to address all the other old computer fogeys out there
ready to call me out. I know it actually predates MS-DOS, and that it’s not so
much a function of the operating system as it is the file system. Fortunately
those details are actually irrelevant to people attempting to deal with this
Now, that was all well and good for a long time. However, other operating
systems, such as Unix, allowed you to have file names of much longer length.
That meant it was quite valid under Unix even then to have filenames like “A
Picture of My Dog.jpg” – longer than 8 characters, and including spaces.
Not so under MS-DOS – or even early versions of Windows. Another example is
“iexplore.exe” – it’s maxed out at 8.3, but would probably have been better
named “iexplorer.exe” since it’s Internet
Explorer, but that’s too long. In order to remain within that
older 8.3 limitation, it was simply truncated and we’re left with
Eventually Microsoft added “Long Filename support” often noted as “LFN”.
longer than the old 8.3 limit…”
The problem, though, was that a massive amount of software existed that
assumed filenames would never be any bigger than 8.3. Now, one could
simply define that those old programs wouldn’t be able to access LFNs, or one
could come up with some kind of a hack.
You can guess which option was chosen.
Those filenames you’re seeing are the result of that hack.
Windows will “make up” a filename for files which are longer than the old
8.3 limit for use by programs that only understand 8.3. It does so by taking
the first part of the filename, chopping off a couple of characters at the end,
and appending a tilde (~) followed by a number. The number is chosen simply to
ensure that the resulting filename is unique within that folder.
So what you’re seeing:
is really an 8.3 representation of this path:
C:\Documents and Settings\MyName\Local Settings\Temp
which you will find on your hard disk.
So why, after all this time, are programs still reporting filenames using
the old 8.3 filename hack? Well, many programs have been around for a long
time. One of the most common culprits I see are setup programs, which once
created, are often themselves not updated other than to reflect changes in the
programs that they’re installing. The result is that some setup programs often
leave traces of the 8.3 naming convention behind after they’re done, in
configuration files and in the registry. Those filenames are perfectly valid
for any program to still use, and often end up showing up in error messages, as
What can you do about it? Pretty much nothing. Just know that when you’re
looking for names that have “~” followed by a number the end, you’re probably
really looking for a longer, more descriptive name that starts with the same
the same characters before the “~”.