Mit Dateien und Ordnern arbeiten
Wie man Dateien einliest und erstellt habe ich ja schon hier behandelt und wie man sie auf verschiedene Eigenschaften testet hier. Jetzt geht es darum, wie man Dateien und Ordner erstellt, löscht, kopiert oder umbenennt und wie man dabei in Verzeichnissen navigiert.
Alle folgenden Beispiele beginnen mit diesem Code:
#!usr/bin/perl -w
print "In welchem Verzeichnis oder Ordner soll gearbeitet werden?\n";
chomp ($verzeichnis = <STDIN>);
Einen neuen Ordner erstellen:
print "wie soll der neue Ordner heissen?\n";
chomp ($ordner = <STDIN>);
chdir $verzeichnis || die "Wechsel in das Verzeichnis geht nicht $!";
mkdir $ordner, 0777 || die "Erstellen geht nicht $!"
Einen leeren Ordner löschen:
print "welcher Ordner soll weg?\n";
chomp ($ordneralt = <STDIN>);
chdir $verzeichnis || die "Wechsel in das Verzeichnis geht nicht $!";
rmdir $ordneralt || die "löschen funktioniert nicht $!";
Eine Datei löschen:
print "welche Datei + Endung soll weg?\n";
chomp ($dateialt = <STDIN>);
chdir $verzeichnis || die "Wechsel in das Verzeichnis geht nicht $!";
unlink $dateialt || die "löschen der Datei geht nicht $!";
Eine Datei umbenennen:
print "welche Datei soll umbenannt werden?\n";
chomp ($alt = <STDIN>);
print "wie ist der neue Name?\n";
chomp ($neu = <STDIN>);
chdir $verzeichnis || die "Wechsel in das Verzeichnis geht nicht $!";
rename ("$alt", "$neu");
Eine Datei kopieren:
print "welche Datei soll kopiertwerden?\n";
chomp ($alt = <STDIN>);
print "wie ist der neue Name?\n";
chomp ($neu = <STDIN>);
chdir $verzeichnis || die "Wechsel in das Verzeichnis geht nicht $!";
link ("$alt", "$neu");
1 Kommentar
RSS Feed für Kommentare zu diesem Artikel.
Entschuldige, das Kommentarformular ist zurzeit geschlossen.
Alles schön.
Wie aber löscht man NICHT leere Ordner?
“rmdir” erlaubt es einem nur leere Ordner zu löschen.
MuĂ ich mit Hilfe einer Funktion in jeden Ordner hinein (per “chdir”) zum löschen der einzelnen Dateien?
Es muà doch eine schönere Lösung geben.
GrĂŒĂe
Kommentar by Freies Kuba — Freitag, 01. 09. 2006 @ 09:30