There is also a post that suggests an obvious solution: Don't generate path's with more than 255 chars! Explain to your users why this is important and a big pain in the ass to deal with and they will understand it.
Oh gee, sure, I never thought of that suggestion. *eyerolling*.
I have on numerous occasions suggested to the java dingleberry developers I work with that perhaps having a class called "findthefarmerwhohasthemostacerageandaskhimifhedliketobuyatractor.java" might be a candidate for abbreviation.
Apparently making me happy and their own lives less complicated is not their priority.
I created a hash in the code I added to my original post to do the very thing you suggest, a substitution table.
Unfortunately I can't seem to get the substitute command to actually do the job.
I will try your stat suggestion and hopefully that will give me help.
Thank you for responding with a thoughtful and very readable answer btw.