是否可以使用IO :: Compress :: Zip创建ZIP存档而不保留传入文件的完整路径?
例如 - 如果我将/tmp/foo/file.pdf添加到zip文件中,我希望在将/ tmp / foo路径添加到存档时将其删除。这可能吗?还有另一个模块可以做到吗?
答案 0 :(得分:4)
请参阅documentation for IO::Compress::Zip
中的FilterName
选项
尽管此选项可以与OO接口一起使用,但它最常见 使用一次性界面。例如,下面的代码显示了如何 FilterName可用于从一系列中删除路径组件 文件名在存储在$ zipfile之前。
sub compressTxtFiles { my $zipfile = shift ; my $dir = shift ; zip [ <$dir/*.txt> ] => $zipfile, FilterName => sub { s[^$dir/][] } ; }