2010-11-24 43 views
1

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

我做:

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"; 
} 

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

回答

2

我(在Mac OS X 10.6.5 5.10.0)版本的Perl在Archive::Zip::Member这个方法:

isDirectory() 
    Returns true if I am a directory. 
+0

谢谢!我不知道为什么我没有在Archive :: Zip文档中看到这个。 – 2010-11-24 23:12:28

相关问题