Быстрый вопрос с Archive::Zip
. Как я узнаю, является ли участник каталогом или файлом? Мне нужно переместить все файлы Ear с определенного Zip в другой каталог. Тем не менее, некоторые каталоги также имеют суффикс .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";
}
Это скажет мне, является ли элемент файлом или каталогом, или моего первого фрагмента кода достаточно?