$Folder[0]='C:/ZIP/'; use Image::Exiftool; use Time::Local; foreach $startdir(@Folder){ &mfind($startdir); } exit; # Recursive routime sub mfind { my($dir)=@_; my($file,$path); local(*D,$_); opendir(D,$dir); while($file = readdir D){ if($file eq '' || $file eq '.' || $file eq '..'){next;} $path=$dir.$file; my @stat=stat($path); if(-d _){ $path.='\\'; # Recurse down &mfind($path); }else{ my $exifTool=new Image::ExifTool; $exifTool->Options(IgnoreMinorErrors => 1); my $info=$exifTool->ImageInfo($path); my $value=$exifTool->GetValue('DateTimeOriginal'); # 2013:03:23 17:56:38 if($value=~m/(\d\d\d\d):(\d\d):(\d\d)\s+(\d\d):(\d\d):(\d\d)/){ my $year=$1; my $mont=$2; my $days=$3; my $hour=$4; my $mins=$5; my $secs=$6; my $dtm=timelocal($secs,$mins,$hour,$days,$mont-1,$year); utime $dtm,$dtm,$file; } } } close(D); return; } # mfind #============================================================================== # The End #==============================================================================