当我尝试通过 Archive::Zip 创建 zip 存档时,没有抛出任何错误,但生成的 zip 文件已损坏。
use Archive::Zip;
my $zip = Archive::Zip->new();
my $file = "/a/very/long/path/with/191/characters/file.txt";
if(-f $file)
{
$zip->addFile("$file", "destinationname.txt");
print "$file added\n";
}
unless ($zip->writeToFileNamed("out.zip") == "AZ_OK") { die "error";};
现在我的 out.zip 文件只有 22B 并且是空的:
$> > unzip -l out.zip
Archive: out.zip
warning [out.zip]: zipfile is empty
出了什么问题?
第一次更新:当我使用具有较短路径名的文件时,一切正常。任何解决方法的想法?符号链接不起作用。
第二次更新:这是一种解决方法:
use File::Slurp;
[...]
my $text = read_file($file);
$zip->addString($text, "destinationfile.txt");
[..]