hawkmaster: rename oder Copy / unlink Geschwindigkeit?

Hallo zusammen,

Ich möchte per PHP Dateien von einem Verzeichnis in ein anderes verschieben. (Auf Windows)

Bisher machte ich dies mit;
copy($prnfile, $dest_prnfile);
unlink($prnfile);

Man könnte es ja aber auch nur mit "rename" machen.

rename($prnfile,$dest_prnfile);

Bringt das etwas von der Performance bzw. der Geschwindigkeit her?

Gruss und danke
hawk

  1. Hello,

    Bringt das etwas von der Performance bzw. der Geschwindigkeit her?

    ich kann dir gerade nicht sagen, wie PHP das implementiert hat, aber ich empfehle dir einfach nur mit dem Explorer den Vergleich zu machen - verschieben ist lediglich ein Umbiegen im Dateisystem, da werden keine Daten bewegt. Es ist damit viel schneller als die Daten zu kopieren und anschließend den alten Verzeichniseintrag zu entfernen.

    MfG
    Rouven

    --
    -------------------
    "I wish it need not have happened in my time" - "So do I, and so do all who live to see such times. But that is not for them to decide. All we have to decide is what to do with the time that is given us."  --  J.R.R. Tolkien: "The Lord Of The Rings: The Fellowship Of The Ring"
    1. Hi,

      verschieben ist lediglich ein Umbiegen im Dateisystem, da werden keine Daten bewegt. Es ist damit viel schneller als die Daten zu kopieren und anschließend den alten Verzeichniseintrag zu entfernen.

      diese Aussage ist richtig, solange Quell- und Zielpfad auf derselben Partition (Windows: auf demselben logischen Laufwerk) liegen.
      Sobald Quelle und Ziel auf verschiedenen Partitionen liegen, ist der Vergleich müßig, dann geht's nicht anders als erst zu kopieren, dann zu löschen. Das macht PHP aber AFAIK selbständig.

      Aber es gibt außer dem Geschwindigkeitsvorteil noch ein weiteres Argument fürs Verschieben (bzw. gegen die copy+delete-Methode). Wenn ich eine Datei erst kopiere und dann das Original lösche, brauche ich zwischendurch den doppelten Speicherplatz auf dem Datenträger, da die Datei für einen kurzen Moment in zwei Verzeichnissen gleichzeitig existiert. Beim Verschieben (rename) wird dagegen nur der Verzeichniseintrag verschoben, es entsteht kein zusätzlicher Platzbedarf.

      So long,
       Martin

      --
      Datenbanken speichern keine User.
      Das liegt daran, daß Datenbanken mit der Lebensmittelversorgung für gespeicherte biologische Lebensformen derzeit noch Probleme haben.
        (Christoph Schnauß)