用perl压缩文件
我一直在尝试在远程windows服务器上压缩文件,但无论我做了什么都没有成功。下面是代码的小部分。请告诉我哪里出了问题。这段代码没有产生任何错误,只是没有生成zip文件用perl压缩文件,perl,Perl,我一直在尝试在远程windows服务器上压缩文件,但无论我做了什么都没有成功。下面是代码的小部分。请告诉我哪里出了问题。这段代码没有产生任何错误,只是没有生成zip文件 use strict; use warnings; # before running check perl module is installed in your PC. use Archive::Zip; use File::Basename 'basename'; my @files = ('D:\Scripts\Te
use strict;
use warnings;
# before running check perl module is installed in your PC.
use Archive::Zip;
use File::Basename 'basename';
my @files = ('D:\Scripts\Testing\abc.txt');
# if it is more than one file add it by using comma as separator
my $zip = Archive::Zip->new;
foreach my $file (@files) {
my $member = basename $file;
printf qq{Adding file "%s" as archive member "%s"\n}, $file, $member;
$zip->addFile( $file, $member );
printf "Member added\n";
}
printf "Writing to zip\n";
$zip->writeToFileNamed('zippedFolders.zip');
#zip file name change it as u want
请你:
use Cwd;
use strict;
use warnings;
# before running check perl module is installed in your PC.
use Archive::Zip;
use File::Basename;
my (@files,$dirname,$bsename) = "";
my $inFile = "D:\\Scripts\\Testing\\abc.txt"; # if it is more than one file add it by using comma as separator
my $curdir = getcwd();
#Need to open file here and to be read the file
open(IN, $inFile) || die "Cant \n";
while(<IN>) {
my $sngfile = $_;
chomp($sngfile);
push(@files, $sngfile);
}
my $zip = Archive::Zip->new();
foreach my $file (@files)
{
$dirname = dirname($file);
$bsename = basename($file);
#Check file exist here your code
if($dirname!~m/\.$/) {
print "$dirname\t$bsename\n";
#printf qq{Adding file "%s" as archive member "%s"\n}, $dirname, $bsename;
$zip->addFile("$dirname/$bsename"); }
}
printf "$curdir\\Writing to zip\n";
$zip->writeToFileNamed("$curdir/zippedFolders.zip"); #zip file name change it as u want
使用Cwd;
严格使用;
使用警告;
#在运行之前,请检查您的电脑中是否安装了perl模块。
使用Archive::Zip;
使用File::Basename;
我的(@files,$dirname,$bsename)=“”;
my$infle=“D:\\Scripts\\Testing\\abc.txt”#如果它是多个文件,则使用逗号作为分隔符添加它
my$curdir=getcwd();
#需要在此处打开文件并读取该文件
打开(在$infle中)| |死“不能”\n;
while(){
我的$sngfile=$\;
chomp($sngfile);
推送(@files,$sngfile);
}
我的$zip=Archive::zip->new();
foreach my$文件(@files)
{
$dirname=dirname($file);
$bsename=basename($file);
#检查文件是否存在于您的代码中
如果($dirname!~m/\.$/){
打印“$dirname\t$bsename\n”;
#printf qq{将文件“%s”添加为存档成员“%s”\n},$dirname,$bsename;
$zip->addFile(“$dirname/$bsename”);}
}
printf“$curdir\\Writing to zip\n”;
$zip->writeToFileNamed($curdir/zippedFolders.zip)#zip文件名根据需要进行更改
它可能会产生错误,但您没有。它不会产生任何错误,只是打印输出“member added”和“writing to zip”。这就是我在CMD上得到的全部信息。如果您没有进行任何错误处理,您如何知道是否有错误?嘿,Matt,请建议我如何做,或者是否有其他方法来压缩文件。我是perl新手。您必须使用Archive::Zip qw(:ERROR\u code)
以便将AZ_OK
常量导入脚本@ssr1012我没有回答。我只是想弄清楚真正的问题是什么。@Matt Jacob:你已经给出了找到答案的方法。这就是为什么我说你已经给出了答案。Apologies@ssr1012您给出的答案代码也没有打开文件,直接进入模具零件打印“不能”。@Sur:请确认输入文件位于以下文件夹中:例如:D:\Scripts\Testing\abc.txt。请同时检查编辑的代码。