Perl模块存档:: Zip - 我如何知道成员是否是文件目录?

时间:2010-11-24 21:55:46

标签: perl perl-module

Archive::Zip的快速提问。我如何知道成员是目录还是文件?我需要将特定Zip中的所有Ear文件移动到另一个目录。但是,某些目录也有.ear后缀,我不想要那些。

我在做:

my @jarMembers = $zip->membersMatching('^.*\.jar');
foreach my $member (@jarMembers) {
    my $fileName = basename($member->FileName());
    $zip->ExtractMember($member, "$zipRootDir/$fileName";
}

我想验证我不会获取目录foo.ear

我怀疑目录名称以斜线结尾,但文档中没有明确说明。我还注意到特殊的Archive :: Zip :: FileMember方法,但访问它们的文档方式并不多。它只是这样吗?

if ($member->externalFileName()) {
   print "Member is a file\n";
} else {
   print "Member is a directory\n";
}

这会告诉我一个成员是文件还是目录,还是我的第一个代码片段是否足够?

1 个答案:

答案 0 :(得分:2)

我的Perl版本(Mac OS X 10.6.5上的5.10.0)在Archive::Zip::Member中使用了此方法:

 isDirectory()
     Returns true if I am a directory.