Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^4: Shorten windows paths too long (trim)

by gj2666 (Sexton)
on Aug 18, 2010 at 15:23 UTC ( #855805=note: print w/ replies, xml ) Need Help??


in reply to Re^3: Shorten windows paths too long (trim)
in thread Shorten windows paths too long

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.


Comment on Re^4: Shorten windows paths too long (trim)
Re^5: Shorten windows paths too long (trim)
by Marshall (Prior) on Aug 19, 2010 at 22:55 UTC
    Hi! I didn't mean to sound flippant.

    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.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://855805]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (12)
As of 2014-08-29 15:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (281 votes), past polls