Hello there!
I have a large Zip archive and I'm trying to extract files based on their names, and copy them into new Zip archives.
The method I'm using now is similar of what I would do using a simple batch file. First I'm extracting all the files using the ExtractTree command:
$zip->extractTree();Then I use the "File::Find::Rule" module to add the files to new Zip archives using regular expression:
my $finder_type1 = File::Find::Rule->new()->name(qr/Type1_(.*?)\.xml$/ +i)->start("."); while( my $file1 = $finder_type1->match() ){ $type1->addFile($file1); } my $finder_type2 = File::Find::Rule->new()->name(qr/Type2_(.*?)\.xml$/ +i)->start("."); while( my $file2 = $finder_type2->match() ){ $type2->addFile($file2); } etc...
This is of course extremely inefficient. I tried to copy files from one Zip to another using $zip->extractMember($element) then write them to another Zip using $type1->addFile($element) but that didn't work, I got empty Zip archives as result.
I'm sure there's a way to selectively copy files from one Zip archive to another without extracting the whole thing and adding them again; is it?
Thanks in advance for help!
In reply to Archive::Zip - How to selectively copy files from one archive to another one? by Gigabyte1907
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |