Alex Wolff: ganze verzeichnis-bäume verschieben

Beitrag lesen

Hallo Klaus!

use File::Copy;
move("/folder_x/subfolder_x","/folder_y/subfolder_y");

Na ja, sooo gehts nun auch wieder nicht. Hättest Du vor diesem Posting einen flüchtigen Blick in die Dokumenation von File::Copy geworfen, dann hättest Du aich sicher gesehen, daß dort keine Funktion namens 'move' implementiert ist.

Ich _habe_ einen mehr als flüchtigen Blick da reingeworfen und Tatsache ist: mit File::Copy hat man die Funktion copy _und_ die Funktion move. gesehen bei:
http://aspn.activestate.com/ASPN/Reference/Products/ActivePerl/lib/File/Copy.html
Obere Zeile hatte ich direkt aus der Doku-Seite rauskopiert und nur die Ordner anders benannt.

Solange das Verschieben im gleichen Filesystem (also für Windowsfreunde 'Laufwerk') passiert, gibt es sogar eine Perlfunktion, die das erledigen kann.
Und weil wir hier ja nicht immer alles vorkauen wollen, hab' ich mir gedacht, daß es noch ein bißchen spanndend bleiben soll.
Also, für viele modernere Betriebssysteme sind Verzeichnisse nichts anderes als spezielle Dateien. Und Dateien kann man ja bekanntlich auch _umbenennen_.
Einige Systeme, Unix/Linux z.B., und wider Erwarten auch Windows, bieten auch die Möglichkeit an, eine Datei inklusive des Pfades umzubenennen. Was wiederum einem Verschieben gleichkommt.

Wie gesagt, funktioniert nicht auf jedem Betriebssystem, und nur, wenn die Dateisystemgrenzen nicht übersprungen werden.
(Linux und Windows 2000 getestet, und für gut empfunden)

Na weißt Du schon, wie die Funktion fürs _Umbenennen_ heißt? Ein kleiner Tip noch, der Name beginnt mit 're' und sie hat zwei Übergabeparameter.

Und wenn das nich ausreicht, dann kannst Du Dir aus File::Copy ja immer noch #copydir' ansehen, das erledigt zumindest den halben Weg. Und da Dich das Thema interessiert, kannst Du dort auch nachsehen, wie so etwas gemacht werden kann.

hast du heute was schlechtes gegessen?

alex