in reply to Re: How to zip directory on windows
in thread How to zip directory on windows

Here's a useful example of how to zip a Windows directory and all subdirectories and gif files, while keeping the original directory structure:
#!/usr/bin/perl use strict; use warnings; use Archive::Zip qw/ :ERROR_CODES :CONSTANTS/; my $maindir = 'C:\StuffToZip'; my $zipfile = 'backup.zip'; my $zip = Archive::Zip->new(); opendir(MAINDIR, $maindir) or die "Can't open $maindir: $!"; my @folders = readdir(MAINDIR); foreach (@folders) { next if $_ =~ /^\./; if (-d "$maindir\\$_") { &zip("$_", "$maindir\\$_"); } else { print "Error reading $maindir\\$_\n"; } } $zip->writeToFileNamed($zipfile) == AZ_OK or die "Can't write >$zipfil +e<: $!\n"; closedir MAINDIR; sub zip { my $type = shift; my $dir = shift; #Adds all subdirectories under $maindir and any gif files found $zip->addTreeMatching( "$dir", "$type", '\.gif$' ); }
Hope it helps. Cheers