从 OSX 上的默认 Perl,如何解压缩到文件夹?
From Default Perl on OSX, How To Unzip To Folder?
我试图避免必须包含其他库并在 OSX 上保持简单,使用自 Snow Leopard[=29] 以来 OSX 附带的默认 Perl =].我也在尝试 避免将 Bash 解压缩到 运行。我发现 this example 几乎可以工作,但死在这条线上:
my $fh = IO::File->new($destfile, "w") or die "Couldn't write to $destfile: $!";
出现此错误:
Couldn't write to /tmp/mytest/Install Norton Security.localized//: Is a directory at test7.pl line 42.
之前,我将文件夹 "Install Norton Security.localized" 压缩到 mytest.zip 并将其粘贴在 /tmp 中。然后我创建了一个目录 /tmp/mytest。然后,我 运行 这个脚本
unzip("/tmp/mytest/mytest.zip","/tmp/mytest");
我还对脚本进行了 lint 语法检查,结果正常——没有像许多其他 Perl zip 库那样警告我缺少库。
您建议的解决方法是什么?
此例程适用于较旧的 OSX,并且不涉及那么多代码行。它还处理子文件夹。
#!/usr/bin/perl
use strict;
use warnings;
use Archive::Zip qw(:ERROR_CODES :CONSTANTS);
my $sSource = "/tmp/mytest.zip";
my $sDest = "/tmp/mytest";
x_unzip($sSource,$sDest);
sub x_unzip {
my ($zip_file, $out_file, $filter) = @_;
my $zip = Archive::Zip->new($zip_file);
unless ($zip->extractTree($filter || '', $out_file) == AZ_OK) {
warn "unzip not successful: $!\n";
}
}
我试图避免必须包含其他库并在 OSX 上保持简单,使用自 Snow Leopard[=29] 以来 OSX 附带的默认 Perl =].我也在尝试 避免将 Bash 解压缩到 运行。我发现 this example 几乎可以工作,但死在这条线上:
my $fh = IO::File->new($destfile, "w") or die "Couldn't write to $destfile: $!";
出现此错误:
Couldn't write to /tmp/mytest/Install Norton Security.localized//: Is a directory at test7.pl line 42.
之前,我将文件夹 "Install Norton Security.localized" 压缩到 mytest.zip 并将其粘贴在 /tmp 中。然后我创建了一个目录 /tmp/mytest。然后,我 运行 这个脚本
unzip("/tmp/mytest/mytest.zip","/tmp/mytest");
我还对脚本进行了 lint 语法检查,结果正常——没有像许多其他 Perl zip 库那样警告我缺少库。
您建议的解决方法是什么?
此例程适用于较旧的 OSX,并且不涉及那么多代码行。它还处理子文件夹。
#!/usr/bin/perl
use strict;
use warnings;
use Archive::Zip qw(:ERROR_CODES :CONSTANTS);
my $sSource = "/tmp/mytest.zip";
my $sDest = "/tmp/mytest";
x_unzip($sSource,$sDest);
sub x_unzip {
my ($zip_file, $out_file, $filter) = @_;
my $zip = Archive::Zip->new($zip_file);
unless ($zip->extractTree($filter || '', $out_file) == AZ_OK) {
warn "unzip not successful: $!\n";
}
}