An 8.3 filename (also called a short filename or SFN) is a filename convention used by old versions of DOS, versions of Microsoft Windows prior to Windows 95, and Windows NT 3.51. It is also used in modern Microsoft operating systems as an alternate filename to the long filename for compatibility with legacy programs. The filename convention is limited by the FAT file system. Similar 8.3 file naming schemes have also existed on earlier CP/M, Atari, and some Data General and Digital Equipment Corporation minicomputer operating systems.
8.3 filenames have at most eight characters, optionally followed by a period "." and a filename extension of at most three characters. For files with no extension, the "." if present has no significance (that is "myfile" and "myfile." are equivalent). File and directory names are uppercase, although systems that use the 8.3 standard are usually case-insensitive.
VFAT, a variant of FAT with an extended directory format, was introduced in Windows 95 and Windows NT 3.5. It allowed mixed-case Unicode long filenames (LFNs) in addition to classic 8.3 names.
To maintain backward-compatibility with legacy applications (on DOS and Windows 3.1), an 8.3 filename is automatically generated for every LFN, through which the file can still be renamed, deleted or opened. The 8.3 filename can be obtained using the Kernel32.dll method GetShortPathName.
Although there is no compulsory algorithm for creating the 8.3 name from an LFN, Windows uses the following convention:
- Example: "TextFile.Txt" becomes "TEXTFILE.TXT".
- Example: "TextFile1.Mine.txt" becomes "TEXTFI~1.TXT" (or "TEXTFI~2.TXT", should "TEXTFI~1.TXT" already exist). "ver +1.2.text" becomes "VER_12~1.TEX".
- Example: "TextFile.Mine.txt" becomes "TE021F~1.TXT".
The NTFS file system used by the Windows NT family supports LFNs natively, but 8.3 names are still available for legacy applications. This can be optionally disabled to increase performance in situations where large numbers of similarly-named files exist in the same folder.
Full article ▸