#!/usr/bin/perl -w use strict; use Win32::API; use Win32API::File (qw/:ALL/); my $filename = "file.txt"; my $GetFileTime = new Win32::API("kernel32", "GetFileTime", ['N', 'P', 'P', 'P' ], 'I'); my $hFile= CreateFile( $filename, GENERIC_READ(), FILE_SHARE_READ(), [], OPEN_EXISTING() , 0, []) or die "Can't read file $filename"; my %filetime =( create=>undef,access=>undef,write=>undef ); for (keys %filetime) { $filetime{$_} = pack("LL", 0, 0); } $GetFileTime->Call($hFile,$filetime{'create'},$filetime{'access'},$filetime{'write'}); for (keys %filetime) { my $filetimepointer = $filetime{$_}; my $systemtime = pack("SSSSSSSS",0,0,0,0,0,0,0,0); my $FileToSystem = new Win32::API("kernel32", "FileTimeToSystemTime", ['P','P'] , 'I'); $FileToSystem->Call($filetimepointer,$systemtime); my($year,$month,$weekday,$day,$hour,$minute,$second,$msecond) = unpack("SSSSSSSS",$systemtime); printf ("$_ time:\t %d/%02d/%02d %02d:%02d:%02d", $month, $day, $year ,$hour,$minute,$second); print "\n"; }