我试过压缩包含perl子目录和文件的目录,这是我的代码。
<h5>{{ job.JobNumber] }} {{ job.jobTitle] }}</h5>
执行此操作时,会创建zip文件(sample.zip)。
始终手动选择选项&#34;完成解压缩。提取到这里&#34;。
当我解压缩时,目录突然打开,将所有子文件夹和文件放在同一位置(D:\ out)。
我想要的是,我希望输出是一个独特的文件夹(D:\ out \ sample)
因此,我的代码需要做哪些更改。请帮助我。
答案 0 :(得分:1)
来自docs:
$ zip-&gt; addTree($ root,$ dest [,$ pred,$ compressionLevel]) - 将文件树添加到邮政编码
$root
是要添加的文件和目录树的根。它 是系统上的有效目录名称。$dest
是该名称 zip文件中的root(undef或空白表示使用相对路径名)。 它是一个有效的ZIP目录名称(也就是说,它使用正斜杠(/) 用于分隔目录组件。)
以及示例,也来自文档:
use Archive::Zip;
my $zip = Archive::Zip->new();
# add all readable files and directories below . as xyz/*
$zip->addTree( '.', 'xyz' );
# add all readable plain files below /abc as def/*
$zip->addTree( '/abc', 'def', sub { -f && -r } );
# add all .c files below /tmp as stuff/*
$zip->addTreeMatching( '/tmp', 'stuff', '\.c$' );
# add all .o files below /tmp as stuff/* if they aren't writable
$zip->addTreeMatching( '/tmp', 'stuff', '\.o$', sub { ! -w } );
# add all .so files below /tmp that are smaller than 200 bytes as stuff/*
$zip->addTreeMatching( '/tmp', 'stuff', '\.o$', sub { -s < 200 } );
# and write them into a file
$zip->writeToFileNamed('xxx.zip');
# now extract the same files into /tmpx
$zip->extractTree( 'stuff', '/tmpx' );