Cheatah: Betriebssystemunabhaengige File-Copy-Funktion

Beitrag lesen

Hi Stefan,

heute mal eine Fachfrage von mir:

muß ja auch mal sein :-)

ich suche in Perl eine Funktion zum Kopieren von Dateien. Dabei will ich system-calls vermeiden, weil das Ganze BS-unabhaengig sein soll.
Nun gibt es da noch die Scheinkopier-Funktion link($oldfile,$newfile), doch die wird offensichtlich auch nur von Unix-Plattformen unterstuetzt, wo es "link" ja auch als Betriebssystem-Kommando gibt. Unter Windows jedenfalls brachte mir die link-Funktion in Perl einen CGI-Error.

Gibt es noch eine andere Funktion? Oder muß man alle betroffenen Dateien (in diesem Fall: diverse Grafiken) binaer einlesen und unter neuem Namen wieder zurueckschreiben?

Es gibt eine einfache Lösung: das Modul File::Copy! Folgende Syntax:

use File::Copy;
copy("file1", "file2");

File::Copy ist standardmäßig vorhanden bzw. kann mit Sicherheit bei http://www.perl.com/CPAN/ runtergeladen werden und hat den Vorteil, sich um die ganzen Betriebssystem-Sachen zu kümmern. Funktioniert sogar mit OS/2 :-)

Erweiterte Syntax:
copy("file1", "file2") or die "Fehler: $!";
Dadurch wird die Fehlermeldung des Systems abgefangen und ausgegeben (ins Errorlog).

Cheatah