perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 24
Click for quality!




10.02.2012 / 20:19

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragDateien umbenennen / anfügen
Seitenanfang
Hallo,
ich habe Verzeichnisse, in denen z.B. 300 Bilder sind. Diese möchte ich fortlaufend ansehen können. Nun haben einige in den Verzeichnissen die Namen 01.jpg bis 99.jpg und danach 100.jpg bis 299,jpg. Die Bilder werden nicht fortlaufend angezeigt, da nach 10.jpg erstmal 100.jpg kommt.
Folgendes habe ich probiert:

#!/usr/bin/perl -w
use File::Copy;
$dir="/root/comix/test/co/";
opendir(DIR,$dir);
while($file = readdir(DIR)){
if ($file =~ /^[0-9]{2}\.jpg/){
@newfile=(0,$file);
print $newfile[0],$newfile[1],"\n";
print @newfile;
rename ($file,@newfile);
}
}
closedir (DIR);

Ich wollte damit einfach eine 0 vor den Dateinamen hängen. Aber er macht es nciht. Bei einem print zeigt er mir die Dateinamen richtig an, aber er benennt sie nicht um. Die Rechte habe ich mal auf 777 gesetzt.
Besten Dank für die Hilfe
Marc

Datum: 07.08.2007-09:32

Beitragre: Dateien umbenennen / anfügen
Seitenanfang
Hallo!

rename erwartet ja auch nur 2 Argumente, den alten und den neuen Dateinamen. Letzterer ist bei dir momentan einfach "0". Den Rest des Arrays @newfile übernimmt er gar nicht. Allerdings hätte er dann alle Dateien in 0 umbennen müssen.

rename sollte bei einem Fehlschlag auch den Fehler in $! hinterlegen, frag diese Variable also einfach mal ab. Wenn nicht, dann versuche es mit move(), da wird der Fehler auf jeden Fall in $! gespeichert. File::Copy hast du ja schon eingebunden.

Ich würde dir zudem vorschlagen, den neuen Dateinamen mit sprintf zusammenzubauen. Damit bist du wesentlich flexibler.

Grüße, Skrilax

Datum: 07.08.2007-11:14

Beitragre: Dateien umbenennen / anfügen
Seitenanfang
Warum willst Du die Dateien umbenennen?

Lies doch einfach alle Dateien in einen Hash ein:

[CODE]

$datei = "1.jpg";
@splitdatei = split(/\./,$datei);
$bilder{$splitdatei[0]} = $splitdatei[1];

foreach $key (sort keys %bilder)
{
irgendwas;
}

Datum: 12.08.2007-18:49

-






-
-