Re: Zufällige Massenumbenennung
Am Samstag 10 Oktober 2009 13:47:50 schrieb Heinrich Seidel:
> Hab mal für ähnliche Zwecke anhängendes PHP Skript geschrieben. Vllt.
> hilft es dir weiter...
Hab ich grad mal getestet. Schaurig, trotzdem Danke.
Er hat mir zum zweiten Mal Alle Bilder nach "Bilder/bksJl2h1am.jpg" umbenannt.
Heißt, es gibt nur noch dieses eine Bild. Der Fehler tritt dann auf, wenn Du
das Script zum zweiten Mal direkt nacheinander startest.
Hatte ein Backup, war kein Problem.
> Gruß
Chris....
P.S. weiter getestet. Wenn ich die Zeile
"mt_srand((double)10*time()*microtime()*1337*0xFA1C0);"
entferne geht es.
P.P.S. ich habe es etwas aufgebohrt. Bei Existenz der Zieldatei wird nichts
unternommen, und im aktuellen Verzeichnis wird abgebrochen. Mir hatte es
nämlich auch Dein PHP-Script umbenannt ;-) Des Weiteren nur 8 Zeichen. Der
Bilderrahmen nimmt glaube ich auch mehr, aber wer weiß.
#!/usr/bin/php
<?php
function getRandName($fName) {
$pool = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
$name = '';
for($i = 0; $i<8;++$i)
$name .= $pool{mt_rand(0,61)};
$ext = explode('.',$fName);
if(count($ext) > 1)
$name .= '.'.$ext[count($ext)-1];
return $name;
}
function renameRecursive($dir) {
$handle = opendir($dir);
while(false !== ($file = readdir($handle))) {
if($file != '.' && $file != '..') {
if(is_dir($dir.$file))
renameRecursive($dir.$file.'/');
else {
$randName = getRandName($file);
if (!file_exists($dir.$randName)) {
echo "Rename ".$dir.$file." --> ".$dir.$randName."\n";
rename($dir.$file,$dir.$randName);
}
}
}
}
}
($argc == 2) || die("Bitte Verzeichnis angeben!\n");
file_exists($argv[1]) || die("Das Verzeichnis existiert nicht!\n");
is_dir($argv[1]) || die("Der angegebene Pfad ist kein Verzeichnis!\n");
if ($argv[1] == ".") die("Nicht aktuelles Verzeichnis verwenden!\n");
renameRecursive($argv[1].(($argv[1]{(strlen($argv[1])-1)} != '/') ? '/' : ''))
?>
Reply to: