Hallo,ich möchte aus einem Verzeichnis alle files _MG*.JPG oder IMG*.JPG suchen, von denen das Erstellungsdatum ermitteln und dieses Datum dem filenamen vornean stellen.
z.B. IMG_6052.JPG wird dann 20080105_173759_IMG_6052.JPG
Dazu habe ich folgende source:
use Win32::FileTime;
print ("Hallo, Welt!\n");
my $dir = "C:/Users/d021758/perlscripts";
opendir(DIR, $dir) || die "Fehler: $!";
while ( defined ($filename = readdir(DIR))) {
$path = "$dir/$filename";
if ($path eq "$dir/." ||
$path eq "$dir/.."){}
elsif ($filename =~ m/(IMG|_MG)*(JPG|jpg)/) {
$filetime = Win32::FileTime->new( $path );
printf "\n\n$filename\n";
printf "$filetime\n";
printf(
"%4d%02d%02d_%02d%02d%02d",
$filetime->Access(
'year',
'month',
'day',
'hour',
'minute',
'second'
)
);
}
}
closedir DIR;
In der Ausgabe erscheint z.B.:
IMG_6052.JPG
Win32::FileTime=HASH(0x29fb8ac)
20080105_173759
Das was mit der 3. printf Anweisung ausgegeben wird, ist im Prinzip das was ich in einer string-Variablen gebrauchen könnte. Geht dies? Wie? Dann könnte ich nämlich den formatierten timestamp mit dem Dateinamen verknüpfen und darüber ein neues file erzeugen.
Vielen Dank & viele Grüsse, Christel
p.s. seid gnädig - dies ist mein erster Perl-Kontakt....
Datum: 06.01.2008-12:47
