update..I changed to use file:copy:recursive..
here is the code which works just fine.
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:
+$!";
as part of a project I am working on I need to copy part of a directory tree to the root, this is to move files being processed by something else so that I can load them into a db. unfortunately its not working out yet, all i get is my warning can't open the file yet for each folder what stupid mistake am I making this time
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 fil
+e yet $filename\n:$!";
}
}
closedir(IN);