我有以下目录树:
mydir/
mydir/bbb/
mydir/bbb/ccc/
mydir/bbb/ccc/myfile.txt
文件拉链如下:
bbb\ccc\myfile.txt
我希望它显示为
\ddd\myfile.txt
命令行zip
实用程序似乎没有选项。有没有其他方式,也许使用Perl。我正在使用unix系统。
答案 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');