【发布时间】:2013-03-12 11:57:57
【问题描述】:
#!/usr/bin/perl
use strict;
use warnings;
my $archive_files = "C:\\Temp\\FREMOTE\\test.zip";
sub extract_archive($$);
extract_archive($archive_files, "C:\\Temp\\FREMOTE\\TEST\\");
extract_archive("C:\\Temp\\FREMOTE\\TEST\\testb.zip",
"C:\\Temp\\FREMOTE\\TEST\\testb\\");
sub extract_archive($$) {
my $archive_file = shift;
my $extract_dir = shift;
if (! -d "$extract_dir") {
mkdir $extract_dir;
}
use Archive::Any;
my $archive = Archive::Any->new($archive_file);
if($archive->extract($extract_dir)) {
print "Extracted $archive_file into $extract_dir\n";
undef $archive;
} else {
print "Failed to extracted $archive_file into $extract_dir\n";
}
}
我收到以下错误。我该如何解决?
IO 错误:复制期间写入错误:文件描述符错误 在 C:/Perl/site/lib/Archive/Any.pm 第 193 行。 IO 错误:复制期间写入错误:文件描述符错误 在 C:/Perl/site/lib/Archive/Any.pm 第 193 行。 IO 错误:复制期间写入错误:文件描述符错误 在 C:/Perl/site/lib/Archive/Any.pm 第 193 行。 IO 错误:复制期间写入错误:文件描述符错误 在 C:/Perl/site/lib/Archive/Any.pm 第 193 行。
【问题讨论】:
-
在 CPAN 模块中没有使用 Carp 可能是我对 perl 生态系统最大的不喜欢。
-
关于 perl 生态系统的真实情况
-
错误实际上是在
Archive::Zip::Memberat line 1068中指定的。事实上,Carp 用于错误,但调用堆栈跟踪会有所帮助......快乐正在进行的错误搜索...... -
您可以使用Carp::Always 强制堆栈跟踪。
-
我在 Windows 和 Linux 上都试过你的代码,解压文件没有问题。您确定 zip 文件没有损坏并且任何 zip 文件都会出现此错误?