Я перебираю дерево каталогов (резервная копия Subversion) и добавляю каждый найденный файл и каталог в zip-файл. Это работает довольно гладко. Однако два файла отсутствуют.
sub zipFolder
{
my $dir = 'D:\\SVN-Backup\\EnterpriseDataRepository\\20110502-0630';
my $zip = Archive::Zip->new();
my $zipped = $zip->addDirectory($dir);
$zipped->desiredCompressionLevel( 9 );
$zipped->desiredCompressionMethod( COMPRESSION_DEFLATED );
print "Before find\n";
find(\&zip_file, $dir);
print "after find\n";
die 'write error' unless $zip->writeToFileNamed('D:/SVN-Backup/CCBuild/backup.zip' ) == AZ_OK;
sub zip_file
{
print $File::Find::name;
if ( -d $File::Find::name ) { # just grab directories, not files.
$zip->addDirectory($File::Find::name);
print " : dir\n";
} else { #zip files
print " : file\n";
$zip->addFile($File::Find::name) != AZ_OK || print "couldn't add file \n";
}
}
}
Файл D: \ SVN-Backup \ 20110502-0630 / db / revprops / 0/0 не будет добавлен в zip-архив. Любая идея, что я могу сделать, чтобы добавить этот файл?
...
D:\SVN-Backup\20110502-0630/db/uuid : file
D:\SVN-Backup\20110502-0630/db/revprops : dir
D:\SVN-Backup\20110502-0630/db/revprops/0 : dir
D:\SVN-Backup\20110502-0630/db/revprops/0/0 : file
D:\SVN-Backup\20110502-0630/db/revprops/0/1 : file
D:\SVN-Backup\20110502-0630/db/revprops/0/10 : file
...
Поздравляю Энди за его вклад. Он решил проблему.
Связанная ошибка:
rt.cpan.org / Public / Bug / display.html? ID = 27463 ,
но это только о файлах, а не
каталоги. Какая версия
Архив :: Zip у вас есть?
У меня есть Perl 5.8.8, который кажется старше, чем исправление.