code gesucht zum dateien umbenennen
code gesucht zum dateien umbenennen
moin,
hat zufällig jemand nen code parat, mit dem man dateien eines verzeichnisses einlesen kann, um diese anschließend umzubenennen.
der neue name sollte aus teilen des alten namen bestehen.
z.b.:
name_old: "lfdnr_erster_teil_-_zweiter_teil.typ"
name_new: "erster teil - zweiter teil.typ"
hat zufällig jemand nen code parat, mit dem man dateien eines verzeichnisses einlesen kann, um diese anschließend umzubenennen.
der neue name sollte aus teilen des alten namen bestehen.
z.b.:
name_old: "lfdnr_erster_teil_-_zweiter_teil.typ"
name_new: "erster teil - zweiter teil.typ"
Code: Alles auswählen
define('PDIR', ...) //...durch die absolute Pfadangabe zum Verzeichnis der Dateien ersetzen
$files = array();
$dir = opendir(PDIR);
while ($file = readdir($dir)) {
if(is_file(PDIR . "/" . $file)) {
array_push($files, array('name' => $file)); //alternativ im Array noch neuen Dateinnamen festlegen
}
}
foreach ($files as $file) {
if(!rename(PDIR."".$file['name'], PDIR."".$file['neuer_name'])) {
echo $file['name']." konnte nicht umbenannt werden";
}
}
hmmm naja
dass wäre dann aber nur das ende des codes. vorher muss ich doch noch jede datei einzeln einlesen, zerteilen und neu zusammenfügen, um werte für alter/neuer name zu haben.
meine frage zielte eigentlich auf schon etwas fast fertiges, wo vielleicht nur noch kleinigkeiten hinsichtlich der formatierung zu machen wären.
es eilt auch nicht, da ich momentan eh wenig zeit habe.
edit: oh sehe du hast deinen post geändert, werd mal drüber schaun, danke
meine frage zielte eigentlich auf schon etwas fast fertiges, wo vielleicht nur noch kleinigkeiten hinsichtlich der formatierung zu machen wären.
es eilt auch nicht, da ich momentan eh wenig zeit habe.
edit: oh sehe du hast deinen post geändert, werd mal drüber schaun, danke
könnte man die while-schleife also beispielsweise wie folgt ändern?
Code: Alles auswählen
while ($file = readdir($dir)) {
if(is_file(PDIR . "/" . $file)) {
$old = $file;
$new = $old.'zustatz';
array_push($files, array('name' => $old));
array_push($files, array('neuer_name' => $new));
}
}
Fast richtig. Nur ein array_push zuviel
Sollte so funktionieren.
Code: Alles auswählen
array_push($files, array('name' => $old,
'neuer_name' => $new'
)
);
die säge klemmt
irgendwo klemmts noch:
es scheint kein "/" zwischen pfad und datei gemacht zu werden.
Code: Alles auswählen
<?PHP
$pfad = 'E:/.../...';
define('PDIR',$pfad);
$files = array();
$dir = opendir(PDIR);
while ($file = readdir($dir)) {
if(is_file(PDIR. "/" .$file)) {
$old = $file;
$new = $old.'zustatz';
array_push($files, array('name' => $old,
'neuer_name' => $new));
}
}
foreach ($files as $file) {
if(!rename(PDIR."".$file['name'], PDIR."".$file['neuer_name'])) {
echo $file['name']." konnte nicht umbenannt werden";
}
}
?>
Code: Alles auswählen
Warning: rename(E:/.../...datei.typ,E:/.../...datei.typzusatz): No such file or directory in E:\...\...\...\...\...\rename.php on line 15
datei.typ konnte nicht umbenannt werden
brett vorm kopp
mal wieder nen brett vorm kopp gehabt:
Code: Alles auswählen
if(!rename(PDIR."/".$file['name'], PDIR."/".$file['neuer_name']))