嗨朋友我可以使用目前运行脚本的目录中的文件创建一个zip文件现在我想从各个目录创建zip文件可以有人帮助我吗? 我的代码是;
use IO::Compress::Zip qw(:all);
zip [ glob("inventory_report_for_neus.xls") ] => "my.zip"
or die "Cannot create zip file: $ZipError" ;
这将生成包含特定文件但
的zip文件use IO::Compress::Zip qw(:all);
zip [ glob("..\\inventory_report_for_neus.xls") ] => "my.zip"
or die "Cannot create zip file: $ZipError" ;
这也是生成zip文件,但里面没有文件!
答案 0 :(得分:3)
<强>更新强>
IO::Compress::Zip
根据当前目录中文件的原始位置创建一个具有分层结构的zip文件。
但是,结果是它无法正确处理当前工作目录未包含的文件。
最简单的解决方案可能是在压缩之前将目录更改为父目录。如果这不是一个选项,请在压缩之前将文件复制到临时位置,或者可能使用IO::Compress::Zip
's more advanced features,例如从文件句柄写入zip文件。
答案 1 :(得分:-1)
use strict;
use warnings;
use MIME::Lite;
use Net::SMTP;
my $msg = MIME::Lite->new (
From => 'xyz@gmail.com',
To => 'thiyagu040@gmail.com',
Subject => 'with inline images',
Type =>'multipart/mixed'
) or die "Error creating mult;$!\n";
system("zip test.zip '../test_dir/report.xls'");
.
.
.
.
$msg ->( filename => test.zip,
content_type => 'application/zip',
disposition => 'attachment',
name => $filename,
);
MIME::Lite->send('smtp', 'smtp.gmail.com', Timeout=>60,AuthUser=>'xyz', AuthPass=>'remotecontrol');
$msg->send();