Perl:在忽略路径名的同时创建ZIP存档

Perl:在忽略路径名的同时创建ZIP存档,perl,zip,Perl,Zip,是否可以使用IO::Compress::ZIP创建ZIP存档,而不保留传入文件的完整路径 例如,如果我将/tmp/foo/file.pdf添加到zip文件中,我希望在将/tmp/foo路径添加到归档文件时删除该路径。这可能吗?是否有其他模块可以执行此操作?请参阅 尽管此选项可以与OO ointerface一起使用,但它是最有用的 与一次性界面一起使用。例如,下面的代码显示了如何 FilterName可用于从一系列文件中删除路径组件 将文件名存储在$zipfile之前 sub compressTx

是否可以使用IO::Compress::ZIP创建ZIP存档,而不保留传入文件的完整路径


例如,如果我将/tmp/foo/file.pdf添加到zip文件中,我希望在将/tmp/foo路径添加到归档文件时删除该路径。这可能吗?是否有其他模块可以执行此操作?

请参阅

尽管此选项可以与OO ointerface一起使用,但它是最有用的 与一次性界面一起使用。例如,下面的代码显示了如何 FilterName可用于从一系列文件中删除路径组件 将文件名存储在$zipfile之前

sub compressTxtFiles
{
    my $zipfile = shift ;
    my $dir     = shift ;

    zip [ <$dir/*.txt> ] => $zipfile,
        FilterName => sub { s[^$dir/][] } ;  
}
子压缩TXT文件
{
我的$zipfile=班次;
我的$dir=shift;
zip[]=>$zipfile,
FilterName=>sub{s[^$dir/][]};
}

请参阅中的
FilterName
选项

尽管此选项可以与OO ointerface一起使用,但它是最有用的 与一次性界面一起使用。例如,下面的代码显示了如何 FilterName可用于从一系列文件中删除路径组件 将文件名存储在$zipfile之前

sub compressTxtFiles
{
    my $zipfile = shift ;
    my $dir     = shift ;

    zip [ <$dir/*.txt> ] => $zipfile,
        FilterName => sub { s[^$dir/][] } ;  
}
子压缩TXT文件
{
我的$zipfile=班次;
我的$dir=shift;
zip[]=>$zipfile,
FilterName=>sub{s[^$dir/][]};
}

我通常是在压缩前将需要的文件组装到一个目录中,但我知道这是一个廉价且空间效率低下的捷径。我通常是在压缩前将需要的文件组装到一个目录中,但我知道这是一个廉价且空间效率低下的捷径。