Perl:创建ZIP存档,同时忽略路径名称
问题描述:
是否可以使用IO :: Compress :: Zip创建ZIP存档而不保留传入文件的完整路径?Perl:创建ZIP存档,同时忽略路径名称
例如 - 如果我将/tmp/foo/file.pdf添加到一个zip文件中,我希望/ tmp/foo路径在添加到存档时被删除。这可能吗?是否有另一个模块可以做到这一点?
答
看到documentation for IO::Compress::Zip
的
FilterName
选项虽然此选项可以与OO ointerface使用,它是用一次性接口最 使用。例如,下面的代码显示了如何使用FilterName从一系列 文件名中删除路径组件,然后它们存储在$ zipfile中。sub compressTxtFiles { my $zipfile = shift ; my $dir = shift ; zip [ <$dir/*.txt> ] => $zipfile, FilterName => sub { s[^$dir/][] } ; }
我通常由组装,我需要在一个目录我之前压缩文件这样做,但我知道这是一个廉价和空间效率低下的捷径。 – 2012-03-28 18:45:36