1 package Archive
::Zip
::DirectoryMember
;
6 use vars
qw( $VERSION @ISA );
10 @ISA = qw( Archive::Zip::Member );
20 my $fileName = shift; # FS name
21 my $newName = shift; # Zip name
22 $newName = _asZipDirName
($fileName) unless $newName;
23 my $self = $class->new(@_);
24 $self->{'externalFileName'} = $fileName;
25 $self->fileName($newName);
29 # -e does NOT do a full stat, so we need to do one now
32 $self->unixFileAttributes( $stat[2] );
34 if ( $^O
eq 'MSWin32' and !$mod_t ) {
37 $self->setLastModFileDateTimeFromUnix($mod_t);
39 } else { # hmm.. trying to add a non-directory?
40 _error
( $fileName, ' exists but is not a directory' );
44 $self->unixFileAttributes( $self->DEFAULT_DIRECTORY_PERMISSIONS );
45 $self->setLastModFileDateTimeFromUnix( time() );
50 sub externalFileName
{
51 shift->{'externalFileName'};
58 sub extractToFileNamed
{
60 my $name = shift; # local FS name
61 my $attribs = $self->unixFileAttributes() & 07777;
62 mkpath
( $name, 0, $attribs ); # croaks on error
63 utime( $self->lastModTime(), $self->lastModTime(), $name );
70 $newName =~ s{/?$}{/} if defined($newName);
71 return $self->SUPER::fileName
($newName);
74 # So people don't get too confused. This way it looks like the problem
77 return wantarray ?
( undef, AZ_OK
) : undef;