A Tale of Two File Names
The article explains the legacy 8.3 filename system in Windows, a holdover from DOS and early Windows that shortens long filenames using tildes and checksums to maintain compatibility. It details how filenames are truncated and transformed, including the use of an undocumented checksum function when naming conflicts occur. The author reverse-engineers the Windows API using debugging tools to uncover how the system generates these short filenames.
- ▪8.3 filenames are a legacy feature from DOS and early Windows, limiting filenames to 8 characters and extensions to 3.
- ▪Special characters are replaced, filenames are upper-cased, and tildes with numbers (e.g., ~1) are used to resolve naming conflicts.
- ▪When ~5 would be reached, a hexadecimal checksum replaces the number, such as in SOBC84~1.ASP.
- ▪The Windows API function GetShortPathName retrieves precomputed short filenames rather than generating them on the fly.
- ▪The checksum algorithm used for 8.3 filenames is undocumented and appears to be a custom Microsoft implementation.
Hacker News (Newest) files mainly under programming. We currently carry 5,306 of its stories.
Story provenance
Source · retrieval · rights · ranking — open for full record
inspect →
Story provenance
Attribution is not the same as permission. This drawer separates discovery metadata, excerpts, WeSearch-generated summaries, reuse status, and whether the publisher receives the visit. Nothing here claims a legal grant the publisher has not made.
Record
| Original publisher | Tomgalvin |
| Canonical URL | https://tomgalvin.uk/blog/gen/2015/06/09/filenames/ |
| Publication time | Sun, 17 May 2026 03:29:01 +0000 |
| Retrieval time | 2026-05-17T04:03:58.374Z |
| Last seen | 2026-05-17T04:04:02.390Z |
| Headline source | Publisher (no WeSearch rewrite) |
| Excerpt source | publisher body |
| Excerpt method | First ~120 words (~800 chars) of extracted publisher body, fair-use limited. |
| Summary | WeSearch · cerebras-chat (WeSearch summarizer) |
| Summary source text | contentText |
| Citation coverage | Summary is a WeSearch-generated derivative; primary citation is the original publisher URL. |
| Cluster | JEUek_36OTgs |
| Cluster logic | Grouped by semantic title/content similarity across sources within a rolling window. Same-publisher template collisions are excluded from coverage comparison. |
| Ranking reason | Story pages are not engagement-ranked. Hub feeds use recency, with optional source-diversified chronological ordering (cap consecutive stories per source). No personalized ranking. |
| Publisher visit | Yes — open original |
| Substitutes article? | No — link-out required for full text |
Rights status (four layers)
WeSearch handling by dimension
| Indexing | May the item be indexed (stored, ranked, made findable)? | Allowed |
| Snippet | May a short excerpt of the publisher's text be shown? | Allowed |
| AI summary | May WeSearch generate its own short summary of the article? | Limited |
| Retrieval / RAG | May the content be exposed for third-party retrieval-augmented generation? | Not asserted |
| Model training | May the content be used to train AI models? | Not asserted |
| Commercial reuse | May the content be reused commercially? | Not permitted |
Basis: Derived from the published RSS/Atom feed. Contact: [email protected]. Reviewed: 2026-07-24.
Opening excerpt (first ~120 words) tap to expand
Users of DOS or older versions of Windows will have invariably stumbled upon a quirk of Windows’ handling of file names at some point. File names which are longer than 8 characters, have an extension other than 3 character long, or aren’t upper-case and alphanumeric, are (in some situations) truncated to an ugly shorter version which contains a tilde (~) in it somewhere. For example, 5+6 June Report.doc will be turned into 5_6JUN~1.DOC. This is relic of the limitations brought about by older versions of FAT used in DOS and older versions of pre-NT Windows. In case you aren’t aware of how 8.3 file names work, here’s a quick run-down. All periods other than the one separating the filename from the extension are dropped - a.testing.file.bat turns into atestingfile.bat.
…
Excerpt limited to ~120 words for fair-use compliance. The full article is at Tomgalvin.