Perl:创建ZIP存档,同时忽略路径名称

问题描述:

是否可以使用IO :: Compress :: Zip创建ZIP存档而不保留传入文件的完整路径?Perl:创建ZIP存档,同时忽略路径名称

例如 - 如果我将/tmp/foo/file.pdf添加到一个zip文件中,我希望/ tmp/foo路径在添加到存档时被删除。这可能吗?是否有另一个模块可以做到这一点?

+0

我通常由组装,我需要在一个目录我之前压缩文件这样做,但我知道这是一个廉价和空间效率低下的捷径。 – 2012-03-28 18:45:36

看到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/][] } ; 
}