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";
}
这会告诉我一个成员是文件还是目录,还是我的第一个代码片段是否足够?
答案 0 :(得分:2)
我的Perl版本(Mac OS X 10.6.5上的5.10.0)在Archive::Zip::Member
中使用了此方法:
isDirectory() Returns true if I am a directory.