Doing that creates one zip file with the name of the last file and puts all the files in that one zip.
I need something that reads the contents of the array, builds a zipfile name from those contents and just throws the tiff file in. Here is my complete code:
#!/perl/bin -w
######################################################################
+#
#
# Author:
# Date:
# Purpose:
#
######################################################################
+#
### Modules used in the script
use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
### Global Variables
$fileCount = 0;
$trashcan = "c:/temp/trashcan.txt";
$file_path = "c:/temp/zip";
######################################################################
+#
@files = <c:/temp/zip/*.tif>;
foreach $file (@files)
{
$fileCount++;
}
print "We have $fileCount files to work with .. lets begin\n";
######################################################################
+#
foreach $file (@files)
{
chomp($file);
$file_to_zip = "$file";
$file =~ s/\//|/g;
$file =~ s/\-/|/g;
$file =~ s/.tif/|/g;
$file = lc($file); #here I wanted to force the case type to low
+er case for consistency
push @items, "$file\n";
}
my $zip = Archive::Zip->new();
foreach $case (@items)
{
chomp($case);
@values = split(/\|/,$case);
$driveltr = $values[0];
$dira = $values[1];
$dirb = $values[2];
$unique_id = $values[3];
$case_num = $values[4];
$case_part = $values[5];
$tester = length($case_part);
$zip_file_name = "$file_path/$case_num.zip";
if ($tester > 0)
{
$file_name = "$unique_id-$case_num-$case_part.tif";
$file_to_zip = "$file_path/$unique_id-$case_num-$case_part.tif
+";
#$zip_file_name = "$file_path/$case_num-$case_part.zip";
}
else
{
$file_name = "$unique_id-$case_num.tif";
$file_to_zip = "$file_path/$unique_id-$case_num.tif";
}
print "to that zip file I will add $file_name\n";
#my $zip = Archive::Zip->new();
my $member = $zip->addDirectory( 'dirname/' );
#$member = $zip->addString( 'This is a test', 'stringMember.txt' )
+;
#$member->desiredCompressionMethod( COMPRESSION_DEFLATED );
$member->desiredCompressionMethod();
$member = $zip->addFile( "$file_to_zip", "$file_name" );
+
#die 'write error' unless $zip->writeToFileNamed( $zip_file_name )
+ == AZ_OK;
#sleep(2);
}
die 'write error' unless $zip->writeToFileNamed( $zip_file_name )
+== AZ_OK;
and this is a sample of the files data I am reading and trying to build zip files for:
30589-030905TEMP-ONE.tif
30590-305cv26.tif
30591-306cv26.tif
30592-304cv743.tif
30593-304cv264.tif
30594-305CV87.tif
30595-305cv87-1of2.tif
30595-305cv87-2of2.tif
30596-305mj66-1of2.tif
30596-305mj66-2of2.tif
30597-305mj65.tif
30598-398cv560.tif
30599-504cvMDL227-1of2.tif
30599-504cvMDL227-2of2.tif
so in the example 504cvmdl227.zip it should contain both files listed at the end |