Hallo alligator,
Wie das progammiertechnisch realisieren soll, hab ich noch keine wirklichen Ideen. Bei der Problematik ahne ich schlimmes
--> Rekursion. Hab damit noch nie was gemacht.
so schwierig ist Rekursion aber auch nicht. Das folgende Perl-Programm setzt Deine Möglichkeit 2 um:
#!/usr/local/bin/perl -w
use strict;
sub loeschen{
my $folder=shift;
opendir(FOLDER,"$folder");
for(readdir(FOLDER)){
next unless(/\w/);
if(-f "$folder/$_"){
unlink("$folder/$_")||next();
}
elsif(-d "$folder/$_"){
loeschen("$folder/$_")||next();
}
}
rmdir("$folder");
}
sub kopieren{
my($original,$kopie)=@_;
mkdir($kopie)||die("Kann Ordner $kopie nicht erstellen: $!");
opendir(FOLDER,"$original");
for(readdir(FOLDER)){
next unless(/\w/);
if(-f "$original/$_"){
open(ORIGINAL,"<$original/$_")||die("Kann $original/$_ nicht lesen: $!");
open(KOPIE,">$kopie/$_")||die("Kann $kopie/$_ nicht schreiben: $!");
if(/.(jpg|gif|exe)$/){ # gegebenenfalls zu erweitern!
binmode(ORIGINAL);
binmode(KOPIE);
}
print KOPIE <ORIGINAL>;
close(KOPIE);
close(ORIGINAL);
}
elsif(-d "$original/$_"){
kopieren("$original/$_","$kopie/$_");
}
}
}
loeschen('d:/save/hund');
kopieren('c:/hund','d:/save/hund');
Nicht schön, aber bei mir klappt's.
Gruß, Christoph