use File::Copy::Recursive; use File::Find; use strict; my $srcdir='c:\\inetpub\\performancetesting\\output\\new\\'; my $destdir='c:\\'; File::Copy::Recursive::dircopy $srcdir, $destdir or die "Copy failed: $!"; #### use File::Copy; my $dir="c:\\inetpub\\performancetesting\\output\\new\\mlx\\"; my $dir2="c:\\"; lista_dirs($dir,$dir); sub lista_dirs{ my ($dir,$dirname)=@_; my (@dirs,@files); opendir DIR, "$dir"; my @dircontent=grep {/[^\.]/} readdir(DIR); closedir DIR; @dirs=(); @files=(); foreach(@dircontent){ if (-d "$dir/".$_){ push @dirs,$_; copy($dir,$dir2); } else { push @files,$_ if($_=~/\.txt$/); } } foreach my $d(@dirs){ lista_dirs("$dir/".$d,$d); print $d,"\n" ; #print $dir; prints full path? } }# not sure if this is going to work or not. opendir(IN,"$dir") or die "opening directory failed:$!"; while (defined (my $file = readdir(IN)) ) { push (my @files, $file); foreach my $filename (@files) { copy ("$dir".$filename, "$dir2".$filename) or warn "Can't open the file yet $filename\n:$!"; } } closedir(IN);