我找不到与我面临的错误相关的问题。 请道歉,如果它在那里,我找不到相同的。
我在Perl中压缩目录时遇到错误。错误是
“-1之前的统计数据不是第一位的c:/Perl/site/lib/Archive/Zip.pm第2885行。”。
以下是我的代码。
#!/usr/bin/perl -w
use strict;
use warnings;
use Archive::Zip qw(:ERROR_CODES :CONSTANTS);
my $directory = 'D:\MyBooks\Data\Super Folder';
my $obj = Archive::Zip->new();
opendir (DIR, $directory) or die $!;
my @filearray = readdir(DIR);
close(DIR);
foreach my $file(@filearray)
{
$obj->addFile($file); # add files
}
if ($obj->writeToFileNamed('dummy.zip') == AZ_OK)
{
print "Archive created successfully!";
}
else
{
print "Error while Zipping !";
}
答案 0 :(得分:1)
您正在获取D:\MyBooks\Data\Super Folder
中的文件列表,但是您要告诉Archive :: Zip压缩当前目录中的文件。
您说您想要存储整个目录树,但您甚至都没有尝试这样做。
按照文档进行操作,您需要:
use File::Find::Rule qw( );
my $dir_qfn = 'D:\MyBooks\Data\Super Folder';
for my $qfn ( File::Find::Rule->new->relative->in($dir_qfn) ) {
$archive->addFileOrDirectory("$dir_qfn/$qfn", $qfn);
}