TechNet Magazine > Home > Issues > 2009 > August >  Windows 'Prettified' Filenames
Windows Confidential Windows 'Prettified' Filenames
Raymond Chen


The introduction of long filenames and lowercase to the FAT file system back in Windows 95 also introduced a transition problem—all files on FAT drives created prior to that point conformed to the old 8.3 file-naming convention— which meant that they were all in uppercase. If Windows hadn't taken any special steps, then using Explorer to visit a folder filled with those old-style names would have resulted in a full-frontal assault by a screen full of uppercase letters.
Nothing screams "I'm an old computer from the 1950s" like filenames in uppercase. (Well, OK, we could also have put line numbers next to each file, too.) Instead of looking like a fresh, modern operating system, Windows 95 would have looked like an operating system written in FORTRAN on punch cards by a bunch of nerds, whereas in reality, Windows 95 was written in a mixture of C, C++, and assembly language on PCs by a bunch of nerds.
To smooth the transition to the exciting new world of lowercase letters, Explorer performed an operation known as "prettifying." If it encountered a filename that was all uppercase and conformed to the 8.3 naming convention, it said, "Oh, this must be one of those files created in the Before Time. Let me put some lipstick on it before introducing it to polite lowercase society." The first character was left uppercase and the remaining characters were converted to lowercase. A file whose name on disk was README.TXT was displayed on screen as Readme, or Readme.txt if extensions for known file types were being shown. Since the FAT file system is case-insensitive, the new name worked just as well for accessing the file, and it looked far less hideous. This was just one of many little touches added to the Windows 95 user interface to make it feel more comfortable and less computery.
This prettification process took place regardless of the underlying file system. Even if the file system supported lowercase natively, Explorer still checked whether the name was ugly. This was done because the all-uppercase name very well may have started out on a file system that supported only ugly names, but when the file was copied to a drive that supported pretty names, the name didn't get prettified. After all, the COPY command doesn't do anything with the filename; if you copy an ugly file, the copy is also ugly!
In Windows 95, prettification of file names was unconditional; there was no way to turn it off. If you had a file named FBI, it would get prettified to Fbi. There was a trick, though: If your file had an extension, you could convert the extension to lowercase while keeping the base name all uppercase. The presence of lowercase in the extension prevented it from being recognized as an old-school filename, so your file FBI.txt retained its original case. After extensions for known file types were hidden, the result was an all-uppercase FBI.
When the Explorer interface was ported to Windows NT 4.0, the prettification feature was preserved, but the Windows NT porting team added an option to disable the feature. The option is now interesting only for historical reasons, because prettification of filenames vanished entirely starting with Windows 2000. Network server names were also subject to prettification up to and including Windows XP.
Now that prettification of filenames has been turned off in all versions of Windows still in mainstream support, you can give your files all-uppercase names with impunity. And, if you still have files created from the days of ugly filenames, those files will be displayed with the original names in their full ugliness. Maybe that's not so bad—that wall of all-uppercase filenames may just bring on the nostalgia.

Raymond Chen's Web site, The Old New Thing, and identically titled book (Addison-Wesley, 2007) deal with Windows history and Win32 programming. He still has a lot of old files on floppy disks, but no longer has a working floppy drive that can read them.

Page view tracker