使用新路径压缩文件

时间:2015-03-25 19:48:07

标签: perl zip

我有以下目录树:

mydir/
mydir/bbb/
mydir/bbb/ccc/
mydir/bbb/ccc/myfile.txt

文件拉链如下:

bbb\ccc\myfile.txt

我希望它显示为

\ddd\myfile.txt

命令行zip实用程序似乎没有选项。有没有其他方式,也许使用Perl。我正在使用unix系统。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那么Archive::Zip模块看起来就像你需要的那样。

创建存档后,可以使用addFile添加路径与源不同的存档成员。喜欢这个

$zip->addFile( {
  filename => 'mydir\bbb\ccc\myfile.txt',
  zipName  => 'ddd\myfile.txt',
} );

例如,该程序创建一个zip存档,并将当前脚本的内容(由$0定义)添加为名为ddd\current.pl的成员。然后将存档写入名为current.zip的文件中。如果您使用7-Zip或类似文件打开该文件,则会看到ddd\current.pl

use strict;
use warnings;

use Archive::Zip;

my $zip = Archive::Zip->new;

$zip->addFile( {
  filename => $0,
  zipName  => 'ddd\current.pl',
} );

$zip->writeToFileNamed('current.zip');