File Names

Long Filenames

Windows NT supports long file names for both the NTFS and FAT file system.

Another reason to keep a partition as FAT is if it is necessary to dual boot to DOS on the server. When booting DOS on an NT server, only the FAT partitions will be recognized. Any long filenames that exist on the FAT partition will be seen with the standard 8.3 filename limitation. NT creates an 8.3 filename along with it's long filenames the same way that Windows 95 creates 8.3 filenames along with long filenames.

The 8.3 version of a long filename of, for example "My Report", would be MYREPO~1. Note that the imbedded space has been stripped out and only the first six characters of the filename have been used. The following tilde character and the number one have been added in case there was another filename that started with the same first six characters. If another long filename existed named "My Report For September," that file under DOS would be seen as MYREPO~2 and so on. Spaces are not the only characters that will be removed from a long filename. Any other special character that is not supported in 8.3 filenames will be replaced in the conversion by an underscore.

Because generating short filenames does create a certain amount of overhead on the server, you do have the option to disable this feature.

To disable short filename support, use the registration database editor, REGEDT32.EXE, and search the HKEY_LOCAL_MACHINE section for the entry HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem. Change the value of the parameter NtfsDisable8dot3NameCreation to a value of 1 (one), and then short filename generation will be disabled.

NTFS uses the 16-bit Unicode character set, which contains many special characters as well as support for most international special characters. Because many of these characters are deemed illegal by DOS file naming standards, these characters are also stripped.

NTFS Filenaming Concerns

NTFS uses the 16-bit Unicode character set, which allows for the use of some special characters and includes both upper- and lowercase letters of the alphabet. Therefore, a filename of "My Document" will retain the uppercase characters in its name. NTFS, however, will not differentiate between files that use the same characters but with different cases. For instance, "my document" may coexist in the same directory as "My Document," but if you use Notepad to open the "My Document" file, the contents of "my document" will appear in Notepad. This anomaly can create havoc for some users, which is why it is important to standardize the way files are named.


NOTE:

Interestingly enough, although NTFS can handle filenames of up to 255 characters, files created from the command line can only have filenames up to 253 characters.


The special characters that cannot appear in an NTFS filename are as follows:

? " / \ < > * | :

When copying files from NTFS to either HPFS or FAT using command-line utilities such as XCOPY and COPY, you may receive errors because those utilities can handle the long filename, but the receiving file system may "choke" on embedded spaces among other characters. To get around this, use the /N switch on those commands, and then the short filename will be used. For example, to copy the contents of directory C:\My Documents from an NTFS partition to the directory D:\DOCS which is located on a FAT partition, use the following syntax:

XCOPY "C:\My Documents\*.*" D:\DOCS /N

Special attention must also be used when creating shortcuts to programs using file associations. If a type of file is associated with a 16-bit program, and the long filename is being used, the 16-bit program will not know how to interpret the filename and not be able to load the file. This will not be a problem on a system that is running all Windows NT or Windows 95 compliant programs.


WARNING:

Using any 16-bit program such as the Windows 3.x File Manager or a DOS utility such as Norton Commander to manipulate files that have long filenames will destroy the long filenames! If this is on an NTFS volume, all the security information will be eliminated as well! Only use 32-bit programs that support long filenames to move or copy files on an NTFS volume.