in reply to Zipping an array problem
Not quite sure what you want to achieve but I'm guessing that you want to add text files to a zip archive without preserving the original directory structure.
Zip::Archive needs to know the path as well as the file name, how else can it find it? You don't need to keep a separate array of the short names, you calculate it when required.
use Archive::Zip; use File::Find; use File::Basename; my $sourceDir = 'C:/sourceDirectory/One'; my $destDir = 'C:/destinationDirectory/Two/'; my @files; find( \&files_to_archive, $sourceDir ); my $zip = Archive::Zip->new(); foreach my $file (@files) { $zip->addFile( $file, basename $file ) } if ($zip->writeToFileNamed("$destDir/textFiles.zip") != AZ_OK) { print "Error creating archive!\n"; } else { print "Archive successfully created!\n"; } sub files_to_archive { push @files, $File::Find::name if (/\.txt$/); }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Zipping an array problem
by mountaingoat (Initiate) on Feb 17, 2008 at 03:31 UTC | |
|
Re^2: Zipping an array problem
by mountaingoat (Initiate) on Feb 17, 2008 at 03:35 UTC | |
|
Re^2: Zipping an array problem
by mountaingoat (Initiate) on Feb 17, 2008 at 04:03 UTC | |
by hipowls (Curate) on Feb 17, 2008 at 06:37 UTC |