[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Zip an existing directory?

Peter Marks

10/29/2007 11:19:00 PM

Hello,

I am trying to zip an existing directory using the following code:

system("zip /Users/petermarks/Desktop/orbus/public/1/daily/2007-10-29")

but get this error:

zip error: Nothing to do!
(/Users/petermarks/Desktop/orbus/public/1/daily/2007-10-29.zip)

I've seen some tutorials for archiving using the rubyzip gem, but they
all involve manually moving files into an archive instead of archiving
an existing directory. I'm assuming rubyzip is overkill for this?

Thanks,

Peter
--
Posted via http://www.ruby-....

17 Answers

Phlip

10/30/2007 12:10:00 AM

0

> I am trying to zip an existing directory using the following code:
>
> system("zip /Users/petermarks/Desktop/orbus/public/1/daily/2007-10-29")
>
> but get this error:
>
> zip error: Nothing to do!
> (/Users/petermarks/Desktop/orbus/public/1/daily/2007-10-29.zip)

How does zip work on the command line? What does zip --help tell you?

You must list some files for it to zip, or at least a wildcard *.

--
Phlip

M. Edward (Ed) Borasky

10/30/2007 12:31:00 AM

0

Phlip wrote:
>> I am trying to zip an existing directory using the following code:
>>
>> system("zip /Users/petermarks/Desktop/orbus/public/1/daily/2007-10-29")
>>
>> but get this error:
>>
>> zip error: Nothing to do!
>> (/Users/petermarks/Desktop/orbus/public/1/daily/2007-10-29.zip)
>
> How does zip work on the command line? What does zip --help tell you?
>
> You must list some files for it to zip, or at least a wildcard *.
>

At least on Linux / Cygwin, the command to make a zip archive from a
directory is

$ zip archive-file.zip /path/to/archive

The first parameter is the output archive file name and the *second*
parameter is the path you want to archive. So what it's complaining
about is that you didn't give it the output archive file name, just the
path that you wanted to archive.

Peter Marks

10/30/2007 12:48:00 AM

0

Thanks for the help guys. I am developing in osx and will deploy in
ubuntu (this is for a rails app). My original command does not work in
the command line, nor does zip --help on my local machine.

The command you suggested, Ed, gives the following response:

adding: Users/petermarks/Desktop/orbus/public/1/daily/2007-10-29/
(stored 0%)

The archive it produces contains the folders of the intended archive's
path, but not the contents of the "2007-10-29" folder. I need to archive
the contents of that folder. Any other ideas?

Thanks again,

Peter
--
Posted via http://www.ruby-....

M. Edward (Ed) Borasky

10/30/2007 4:55:00 AM

0

Peter Marks wrote:
> Thanks for the help guys. I am developing in osx and will deploy in
> ubuntu (this is for a rails app). My original command does not work in
> the command line, nor does zip --help on my local machine.
>
> The command you suggested, Ed, gives the following response:
>
> adding: Users/petermarks/Desktop/orbus/public/1/daily/2007-10-29/
> (stored 0%)
>
> The archive it produces contains the folders of the intended archive's
> path, but not the contents of the "2007-10-29" folder. I need to archive
> the contents of that folder. Any other ideas?
>
> Thanks again,
>
> Peter

zip -r archive.zip
Users/petermarks/Desktop/orbus/public/1/daily/2007-10-29/

I forgot the "-r" (for recursive).

Peter Marks

10/30/2007 5:09:00 AM

0

> zip -r archive.zip
> Users/petermarks/Desktop/orbus/public/1/daily/2007-10-29/
>
> I forgot the "-r" (for recursive).

Thanks Ed, that archives the contents of "2007-10-29". Do you know if
there is a way to make the new archive only contain the contents of
"2007-10-29" and not the folders of the path leading to it?
--
Posted via http://www.ruby-....

M. Edward (Ed) Borasky

10/30/2007 5:48:00 AM

0

Peter Marks wrote:
>> zip -r archive.zip
>> Users/petermarks/Desktop/orbus/public/1/daily/2007-10-29/
>>
>> I forgot the "-r" (for recursive).
>
> Thanks Ed, that archives the contents of "2007-10-29". Do you know if
> there is a way to make the new archive only contain the contents of
> "2007-10-29" and not the folders of the path leading to it?

$ cd /Users/petermarks/Desktop/orbus/public/1/daily/
$ zip -r archive.zip 2007-10-29

There's another way, but I don't remember what it is.


Peter Marks

10/30/2007 5:55:00 AM

0

M. Edward (Ed) Borasky wrote:
> $ cd /Users/petermarks/Desktop/orbus/public/1/daily/
> $ zip -r archive.zip 2007-10-29
>
> There's another way, but I don't remember what it is.

I think I'll digg up that other way in order to write this into a ruby
function. Thanks again for you guidance Ed. :)
--
Posted via http://www.ruby-....

M. Edward (Ed) Borasky

10/30/2007 6:09:00 AM

0

Peter Marks wrote:
> M. Edward (Ed) Borasky wrote:
>> $ cd /Users/petermarks/Desktop/orbus/public/1/daily/
>> $ zip -r archive.zip 2007-10-29
>>
>> There's another way, but I don't remember what it is.
>
> I think I'll digg up that other way in order to write this into a ruby
> function. Thanks again for you guidance Ed. :)
Isn't there a Ruby library that does this without calling the
command-line function?

Peter Marks

10/30/2007 6:14:00 AM

0

M. Edward (Ed) Borasky wrote:
> Isn't there a Ruby library that does this without calling the
> command-line function?

Apparently there's rubyzip. I haven't really looked into that too much,
but will if I can't get this to work right.
--
Posted via http://www.ruby-....

7stud --

10/30/2007 6:50:00 AM

0

M. Edward (Ed) Borasky wrote:
> Peter Marks wrote:
>>> zip -r archive.zip
>>> Users/petermarks/Desktop/orbus/public/1/daily/2007-10-29/
>>>
>>> I forgot the "-r" (for recursive).
>>
>> Thanks Ed, that archives the contents of "2007-10-29". Do you know if
>> there is a way to make the new archive only contain the contents of
>> "2007-10-29" and not the folders of the path leading to it?
>
> $ cd /Users/petermarks/Desktop/orbus/public/1/daily/
> $ zip -r archive.zip 2007-10-29
>
> There's another way, but I don't remember what it is.


Try this:

Dir.chdir("/Users/petermarks/Desktop/orbus/public/1/daily")
system("zip -r zipped_rails_app ./2007-10-29")
--
Posted via http://www.ruby-....