I’ve recently come across this with a bug report on some code that I’m working on, and it sucks, big time.
First, the wonky unicode workaround does not work in .NET. Period. The max filename limit for .NET 2.0, a proper 21st century programming framework released in 2005, is 260 chars.
Second, on XP, the path for user documents belonging to a certain type of application is:
c:\documents and settings\username\my documents\application projects\
which is about 70 chars. Worse, on some of our users systems, they have:
\server\users\department\documents and settings\username\my documents\application projects\
which is almost 100.
From there, projects are saved in their own directory with the name given to a project. For the projects our users have, they generally include stuff like the name of their client, the year and month of the project, and a meaningful description of the project in the project name. e.g.:
MegaCorp contract for frobbing the gromits - Sep 2006
There’s another 50+ characters there. Project names of 80 characters aren’t /that/ rare and project names of 120 characters exist.
That’s over 200 characters. Now we have files in that directory and some subfolders. Users create files with meaningful names too.
You can hit that 260 char limit pretty darn quick. But the only thing we can tell our users is not to use nice long descriptive names for things, despite the fact that Windows is supposed to support long filenames.