#! perl -slw
use strict;
use Win32API::File qw[ FdGetOsFHandle ];
use Win32::API::Prototype;
ApiLink(
'kernel32',
'BOOL GetFileTime(
HANDLE hFile,
LPFILETIME lpCreationTime,
LPFILETIME lpLastAccessTime,
LPFILETIME lpLastWriteTime
)'
) or die $^E;
my $osfh = FdGetOsFHandle( fileno( DATA ) ) or die $!;
my( $ctime, $atime, $wtime ) = ( chr(0) x 8 ) x 3;
GetFileTime( $osfh, $ctime, $atime, $wtime ) or die $^E;
## Ignore the stuf above,
## it's just a way of getting some FILETIMEs for testing.
sub msFiletimeToUnix{
my ( $lo, $hi ) = unpack 'V2', $_[ 0 ];
my $nanosecs = $hi * 2**32 + $lo;
return int( ($nanosecs - 116444736010000000) / 1E7 );
}
for( $ctime, $atime, $wtime ) {
print scalar localtime( msFiletimeToUnix( $_ ) );
}
__DATA__
P:\test>368002
Fri Jun 18 18:47:04 2004
Fri Jun 18 20:10:35 2004
Fri Jun 18 20:10:33 2004
Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail
"Memory, processor, disk in that order on the hardware side. Algorithm, algoritm, algorithm on the code side." - tachyon
| [reply] [d/l] |