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

In reply to Re^4: newbie question to archive::zip by jashv
in thread newbie question to archive::zip by jashv

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.