I tried putting it outside and it seems to get that same error message. I creates each zip file, but the zip file is empty.
#!/usr/bin/perl -w
use strict;
use warnings;
use File::Basename;
use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
my $procdate = sprintf "%02d%02d%02d%02d%02d%02d", (localtime)[4]+1, (
+localtime)[3], substr((localtime)[5]+1900,2,2),(localtime)[2], (local
+time)[1], (localtime)[0];
my @dipfile = glob('C:/ReportExtract/Director/*.xml');
##### Zip each file into a zip file for archiving #####
my $targetdir = File::Spec->catdir('C:/ReportExtract/Director/');
my $targetzip = File::Spec->catdir($targetdir, basename($procdate) . "
+.zip"); #Need basename.
my $zip = Archive::Zip->new();
my $zipdir = $zip->addDirectory($targetdir);
foreach my $xml_file (@dipfile) {
my $temp = File::Basename::fileparse($xml_file); #Trying it with o
+nly the basename.
$zipdir = $zip->addFile($temp);
};
unless ( $zip->writeToFileNamed($targetzip) eq "AZ_OK" ) {die 'rea
+d error';}
Here is the updated code.
Dave |