Hallo Jörg,
Wie stelle ich das am sinnvollsten an?
die Technik kommt, wie immer, als letztes.
Fang damit an, indem Du sagst, nach welchen Regeln Du die Nummern vergeben willst. Damit stellst Du ja eine Reihenfolge her.
Die existierenden Nummern erzeugen auch eine Form von Reihenfolge. Soll die erhalten bleiben und nur "ordentlich" formatiert werden? Wenn Du diese Dateien hier einliest
1a Mama - Heintje.mp3
1b Atemlos - Helene Fischer.wav
002 Atemlos - Helene Fischer.wav
03a Hänschen Klein - Kinderchor Hintertupfingen.mp3
03b Alle meine Entchen - Kinderchor Hintertupfingen.mp3
und nach "Name" sortierst, käme als Reihenfolge 002, 03a, 03b, 1a, 1b heraus.
Welche Anforderungen hast Du an die Reihenfolge-Bildung?
Mal angenommen, du möchtest sie in einer gefühlt natürlichen Reihenfolge haben, also ohne Beachtung führender Nullen. Dann käme 1a, 1b, 002, 03a, 03b heraus. Und nun beginnst Du umzubenennen. Hui, die böse Helene, die beschert Dir gleich mal eine Rename-Kollision. D.h. Du musst vor dem Rename prüfen, ob das Ziel schon existiert. Wenn ja, die Kollisionskandidaten erstmal beiseite lassen und den Rest renamen. Danach sollten die Kollisionskandidaten kein Problem mehr sein, weil durch die fortlaufende Nummerierung ja der Name nun frei sein sollte.
Und was ist mit Unterverzeichnissen? Nummerierst Du nur ein Verzeichnis oder operiert das irgendwie rekursiv? Welche Dateitypen willst Du verarbeiten? Hat der Dateityp einen Einfluss auf die Reihenfolge?
Wenn das geklärt ist, kannst Du mit glob, scandir oder readdir ein Verzeichnis lesen, die Dateinamen standardisieren und die Dateien umbenennen.
Rolf
sumpsi - posui - obstruxi