HMcG
HMcG

Reputation: 2060

Is there a good reason to limit Windows filename extentions to three characters?

I am creating a utility that will store data on flat file in a specific binary format. I want the filename extension to be specific to my application. Is there any reason other than the old 8.3 filename limit for restricting the extension to 3 characters, and if not, what is the limit? Can I have myfilename.MyExtensionSoHandsOffEverybodyElse ?

Upvotes: 2

Views: 523

Answers (4)

Kyle Trauberman
Kyle Trauberman

Reputation: 25694

This is a hold over from the old windows 3.x/MSDOS days. Today, there are plenty of file names that have more than 3 character extensions.

If I remember correctly, Windows XP had a maximum character limit for path names (including the file name) of 255 characters.

Upvotes: 6

Jon Seigel
Jon Seigel

Reputation: 12401

No, there isn't a good reason to limit the extension to 3 characters. However, a shorter, descriptive name is better if a user has to remember it. For example, most people know what a .html or .doc file would contain.

As long as you make a reasonable attempt to avoid naming collisions with major software there shouldn't be an issue. A corollary to that is the fact that unless you create some insanely long extension that will only ever be unique to your software (and even then, it's not guaranteed), the extension you choose will always be subject to name collision by other people's software when they choose their program's data file extension as you are doing here.

Upvotes: 2

MiffTheFox
MiffTheFox

Reputation: 21575

The only good reason for doing this is if you plan to support Windows 9x. If you're only targeting XP and later, as with most projects nowdays, the 8.3 thing is irrelevant.

In fact, Windows itself stores things in long-extension filenames in Vista and later, for example, .search-ms for saved searches.

Upvotes: 4

Sukasa
Sukasa

Reputation: 1700

In my experience, having seen a few non-3-character extensions I'd say that it's a matter of tradition, and you're perfectly welcome to use myfilename.MyExtensionSoHandsOffEverybodyElse.

Upvotes: 5

Related Questions