You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
1.9 KiB
118 lines
1.9 KiB
package Win32::File;
|
|
|
|
#
|
|
# File.pm
|
|
# Written by [email protected]
|
|
#
|
|
# subsequent hacks:
|
|
# Gurusamy Sarathy
|
|
#
|
|
|
|
$VERSION = '0.05';
|
|
|
|
require Exporter;
|
|
require DynaLoader;
|
|
|
|
@ISA= qw( Exporter DynaLoader );
|
|
@EXPORT = qw(
|
|
ARCHIVE
|
|
COMPRESSED
|
|
DIRECTORY
|
|
HIDDEN
|
|
NORMAL
|
|
OFFLINE
|
|
READONLY
|
|
SYSTEM
|
|
TEMPORARY
|
|
);
|
|
@EXPORT_OK = qw(GetAttributes SetAttributes);
|
|
|
|
=head1 NAME
|
|
|
|
Win32::File - manage file attributes in perl
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
use Win32::File;
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
This module offers the retrieval and setting of file attributes.
|
|
|
|
=head1 Functions
|
|
|
|
=head2 NOTE
|
|
|
|
All of the functions return FALSE (0) if they fail, unless otherwise noted.
|
|
The function names are exported into the caller's namespace by request.
|
|
|
|
=over 10
|
|
|
|
=item GetAttributes(filename, returnedAttributes)
|
|
|
|
Gets the attributes of a file or directory. returnedAttributes will be set
|
|
to the OR-ed combination of the filename attributes.
|
|
|
|
=item SetAttributes(filename, newAttributes)
|
|
|
|
Sets the attributes of a file or directory. newAttributes must be an OR-ed
|
|
combination of the attributes.
|
|
|
|
=back
|
|
|
|
=head1 Constants
|
|
|
|
The following constants are exported by default.
|
|
|
|
=over 10
|
|
|
|
=item ARCHIVE
|
|
|
|
=item COMPRESSED
|
|
|
|
=item DIRECTORY
|
|
|
|
=item HIDDEN
|
|
|
|
=item NORMAL
|
|
|
|
=item OFFLINE
|
|
|
|
=item READONLY
|
|
|
|
=item SYSTEM
|
|
|
|
=item TEMPORARY
|
|
|
|
=back
|
|
|
|
=cut
|
|
|
|
sub AUTOLOAD
|
|
{
|
|
my($constname);
|
|
($constname = $AUTOLOAD) =~ s/.*:://;
|
|
#reset $! to zero to reset any current errors.
|
|
$!=0;
|
|
my $val = constant($constname);
|
|
if($! != 0)
|
|
{
|
|
if($! =~ /Invalid/)
|
|
{
|
|
$AutoLoader::AUTOLOAD = $AUTOLOAD;
|
|
goto &AutoLoader::AUTOLOAD;
|
|
}
|
|
else
|
|
{
|
|
($pack,$file,$line) = caller;
|
|
die "Your vendor has not defined Win32::File macro $constname, used in $file at line $line.";
|
|
}
|
|
}
|
|
eval "sub $AUTOLOAD { $val }";
|
|
goto &$AUTOLOAD;
|
|
}
|
|
|
|
bootstrap Win32::File;
|
|
|
|
1;
|
|
__END__
|