Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
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 taking refuge in the Monastery: (9)
As of 2015-07-03 07:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (49 votes), past polls