gpt4 book ai didi

windows - Archive::Any 给出 IO 错误

转载 作者:可可西里 更新时间:2023-11-01 10:48:04 26 4
gpt4 key购买 nike

#!/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 error: write error during copy : Bad file descriptor at C:/Perl/site/lib/Archive/Any.pm line 193.IO error: write error during copy : Bad file descriptor at C:/Perl/site/lib/Archive/Any.pm line 193.IO error: write error during copy : Bad file descriptor at C:/Perl/site/lib/Archive/Any.pm line 193.IO error: write error during copy : Bad file descriptor at C:/Perl/site/lib/Archive/Any.pm line 193.

最佳答案

我用下面的代码测试了它。使用两个已知良好的 zip 文件,我将第二个 zip 文件添加到第一个 - 以重现我相信你在做什么。使用原始代码,我在提取第二个文件期间一直收到错误消息:

Extracted C:\Temp\colorbox-master.zip into C:\Temp\FREMOTE\TEST\<br>
Can't call method "extract" on an undefined value at Perl-1.pl line 19.

与您的错误不同,但已通过以下代码修复:

#!/usr/bin/perl
use strict;
use warnings;

my $archive_files = "C:\\Temp\\colorbox-master.zip";

extract_archive($archive_files, "C:\\Temp\\FREMOTE\\TEST\\");
extract_archive("C:\\Temp\\FREMOTE\\TEST\\easybox-v1.3.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";
}
}

解压 C:\Temp\colorbox-master.zip 到 C:\Temp\FREMOTE\TEST\
将C:\Temp\FREMOTE\TEST\easybox-v1.3.zip解压到C:\Temp\FREMOTE\TEST\testb\

请注意,我刚刚安装了“Archive::Any-0.0932”模块 (ActiveState Perl),所以我可能有不同的(固定的)版本。您可能需要检查您的模块是否为最新版本。并且您的 zip 文件没有损坏。

关于windows - Archive::Any 给出 IO 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15573543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com