in reply to Creating Zip files
This question got me thinking how to do it in windows. Im not sure what platform you are using, but here is how I got it working on Win2000. I use the popular WinZip program to create the files. I first tried using something like system($cmd,"args") but could not get it to work.
Doing some searching, I found the Win32::Process module. This is my first attempt and a quick hack using this module but it is tested and working.
Winzip expects filenames to be passed with complete paths and quoted to support long file names: "c:\mypath\to\my\Cool Archive.zip"
#!/usr/bin/perl -w # Using WinZip to zip files up on Windows machine. use strict; use Win32; use Win32::Process; my $cmd = "C:\\Program Files\\WinZip\\winzip32.exe"; my $rootdir = "c:\\Documents and Settings\\bch\\My Documents"; my $filename = '"c:\\Documents and Settings\\bch\\My Documents\\te +starchive.zip"'; my @files = ('got milk.jpg','kellogs.jpg','gravity.jpg','Resume.do +c'); for my $x (0..(@files-1)) { $files[$x] = qq["$rootdir\\$files[$x]"]; } sub print_error() { return Win32::FormatMessage( Win32::GetLastError() ); } Win32::Process::Create(my $processobj, "$cmd", "winzip32 -min -a $filename @files", 0, DETACHED_PROCESS, ".") or print_error();
Help this helps!
zzspectrez
|
|---|