當我嘗試通過Archive :: Zip創建zip存檔時,沒有錯誤拋出,但生成的zip文件被破壞。使用Archive :: Zip存儲文件時遇到問題:我得到的空zip文件沒有錯誤代碼
use Archive::Zip;
my $zip = Archive::Zip->new();
my $file = "https://stackoverflow.com/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
錯在何處?
第一次更新:當我使用較短路徑名稱的文件時,一切正常。任何想法的解決方法? Symlinking不起作用。
二更新:這可以作爲一個解決方法:
use File::Slurp;
[...]
my $text = read_file($file);
$zip->addString($text, "destinationfile.txt");
[..]
不起作用。我編輯了這個錯誤,以避免進一步的混淆。 –
適合我。你確定你沒有丟失文件路徑中的根文件夾前導'/'? –