Der Martin: Merkwürdiger Fehler...

Beitrag lesen

Hallo,

Ich habe folgendes vor: eine (vorhandene) Datei soll umbenannt und dann in einen Ordner meiner Wahl verschoben werden.

unabhängig von deinem Syntaxproblem, das Patrick und Cheatah ja schon erschöpfend erklärt haben, wundere ich mich, warum du das so kompliziert machst:
 (1) erst im gleichen Verzeichnis umbenennen
 (2) dann ins Zielverzeichnis kopieren
 (3) dann die Originaldatei löschen

Warum übergibst du der Funktion rename() nicht gleich den kompletten Pfad (bestehend aus neuem Zielverzeichnis und neuem Namen) als zweiten Parameter? Dann hättest du den gesamten Vorgang in einem atomaren Aufruf. Einfacher, sicherer, sauberer.

Bei dir kann zum Beispiel im Schritt (1) ein Fehler auftreten, wenn eine Datei mit dem *neuen* Namen im *alten* Verzeichnis existiert, obwohl die überhaupt nichts mit dem gewünschten Vorgang zu tun hat.
Oder in Schritt (2), wenn die Kopie fehlschlägt, weil der Datenträger voll ist. Dann bleibt eine umbenannte Datei im Originalverzeichnis übrig.

So long,
 Martin

--
Ein guter Lehrer muss seinen Schülern beibringen können,
eine Frage so zu stellen, dass auch der Lehrer lernen muss,
um die Frage beantworten zu können.
  (Hesiod, griech. Philosoph, um 700 v.Chr.)