I've used this "translation table" idea before in a number of different contexts. In this context, I would split the path name into name tokens (stuff between /'s). Apply the translator to the dir names, if and only if it is a complete match to your translation table. Don't substitute on partial strings. Then reassemble the path name using join().
You have no chance to fiddle with the final target: "findthefarmerwhohasthemostacerageandaskhimifhedliketobuyatractor.java", BUT along the way to this end file target, there will be perhaps, "thisisaclassoffolkswhoarefarmersandtheirmothersmadiennamewaswoo_hoo /findthefarmerwhohasthemostacerageandaskhimifhedliketobuyatractor.java". I put a space after woo_hoo for display purposes.
I would think that these Java folks have some naming convention for these intermediate directories - that is the target of your translation table. Probably just a handful of these names shortened to other names will do it. One trick is that you want to be able to translate in both directions.
I wish you well. This is a mess when the other folks won't cooperate at least to a small extent. You have my sympathy.
In a completely general case, this approach will not work. But I suspect that you are in a situation where <10 names in the translation table will work and that is a small enough number that you can manage this process.
In reply to Re^5: Shorten windows paths too long (trim)
by Marshall
in thread Shorten windows paths too long
by gj2666
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |