11月
08
自分用の覚書です。zipファイルの中に複数のzipファイルが有り、zip中zipの中から目的のテキストファイルを探し出して読み込むサンプル・コードです。特別なことは何もないですし、注釈は要らないでしょう。
#!/usr/bin/perl my $fn_to_be_found = "target.txt"; if ($ARGV[0] =~ /zip$/i) { use File::Temp qw/tempfile/; use Archive::Zip; my $zip = Archive::Zip->new; $zip->read($ARGV[0]); my @members = $zip->membersMatching(/zip$/i); my $finish = 0; foreach my $m (@members) { my $fn = $m->fileName; print "zip in zip file: $fn\n"; my ($temp_fh, $temp_filename) = tempfile(UNLINK => 1); print "Temporary file name: $temp_filename\n"; $m->extractToFileHandle($temp_fh); $temp_fh->flush; my $zip2 = Archive::Zip->new; $zip2->read($temp_filename); my $m2 = $zip2->memberNamed($fn_to_be_found); if ($m2) { my $fn2 = $m2->fileName; print ">>$fn2\n"; $file_contents = $m2->contents; $finish = 1; } close $temp_fh; if ($finish) {last;} } } # print $file_contents;
no comment untill now