Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用perl压缩文件_Perl - Fatal编程技术网

用perl压缩文件

用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

我一直在尝试在远程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\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。请同时检查编辑的代码。