aspose file tools*
The moose likes Java in General and the fly likes Zipping Directory Structure - Need to Chop Off First Few Directories Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Java 8 in Action this week in the Java 8 forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Zipping Directory Structure - Need to Chop Off First Few Directories" Watch "Zipping Directory Structure - Need to Chop Off First Few Directories" New topic
Author

Zipping Directory Structure - Need to Chop Off First Few Directories

Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15292
    
    6

A web application I am working on stores files on AmazonS3 and I give the user the option of downloading a handful of files at once. These files are pulled down from AS3 then I zip them up before shipping them off to the user. This is a grails app so m code is in Groovy but it's just the Zip API so should be close enough for help here.

I download the files (which include directories of their own) into an initial drop spot. Something like:

/applications/thehighbar/attachments/board/

And then the system creates a user directory and a timestamp directory so I end up with this..

/applications/thehighbar/attachments/board/1234/102343254354/

Then my files are downloaded into that directory and I end up with...

/applications/thehighbar/attachments/board/1234/102343254354/2010/something/foo/file001.txt
/applications/thehighbar/attachments/board/1234/102343254354/2010/something/foo/file002.txt
/applications/thehighbar/attachments/board/1234/102343254354/2010/something/boo/boo001.png

You get the idea. The problem is that when I zip this up, the zip file contains /applications/... all the way to the actual files. I really need to start at 2010, although it won't always say 2010. So basically, I need to chop off /applications/thehighbar/attachments/board/1234/102343254354/ so they don't get zipped into the zip file. Here's my code..



loopFile is a File object that represents everything from /applications/ up to where 2010 starts. I then loop over all the directories and files within that structure. But since the File has an absolute path starting with /applications/ those still get zipped up as part of the structure. I realize this is kind of confusing. I hope it makes enough sense.


GenRocket - Experts at Building Test Data
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18167
    
    8

Wouldn't you just replace

by

where the shortVersion method returns the jar path you want to see?
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15292
    
    6

Thanks Paul. Let me give that a shot.
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15292
    
    6

Perfect Paul! Worked great. Thank you.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Zipping Directory Structure - Need to Chop Off First Few Directories
 
Similar Threads
How to use httpclient by apache to test my application
zip files without path info...
Windows XP Compressed Folders doesn't recognize my Java-created zip file
Zip file creation with directory suppression through an API
java.util.zip : Unzipping gives Windows error