[perl] 复制文件夹

#! /bin/perl
use strict;
use Cwd;
use File::Copy;

my $despath = @ARGV[0];
print "$despath\n";

my $curpath = getcwd;
print "$curpath\n";
my $dir;

print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
ReplacePerlFolder($curpath, $despath);
print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";

sub checkIfFolder{
  my $name=$_[0];
  if( opendir DH,$name){
     closedir DH;
     print "check $name is folder!\n";
     return 1;
  }
  print "check $name is not folder!\n";
  return 0;  
}
#to replace Perl Folder
sub ReplacePerlFolder{   
   my $src=$_[0];      #source folder 
   my $target=$_[1];   #target folder 
   mkdir $target if(not -e $target);   
   print "    mkdir $target\n";
   opendir DH,$src or die "Can't Open $src,Information:$!!\n"; 
   
   my @dirs=readdir DH;   
   foreach my$fd(@dirs){      
       if(checkIfFolder($src."\/".$fd)){  #directory
           print "$fd\n";
           ReplacePerlFolder($src."\/".$fd,$target."\/".$fd) if($fd !~ /^(\.|\.\.)$/);    
       }      
       else{        #file,copy directly
           print "Copy $src\/$fd to $target\/$fd\n";
           copy($src."\/".$fd,$target."\/".$fd) or die $!; 
       }      
   }
   closedir DH;  
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值