1. 程式人生 > >perl目錄檔案操作--複製,移動,重新命名

perl目錄檔案操作--複製,移動,重新命名

perl目錄操作,
建立目錄控制代碼指向要操作的目錄。 開啟目錄控制代碼使用 opendir ;
opendir dirhandle,directory ;
例:取某目錄下檔案的列表:
opendir (e,'E:\娛樂\music\阿杜')|| die"can't open e: $!" ;
@files=readdir e; 
closedir(e) ;

for($index=0;$index<@files ;$index++){
   print "@files[$index]\n" ;
}
#輸出指定目錄下的所有檔案(該目錄不包含子目錄)。

建立目錄:mkdir
mkdir('d:\test',0755)||die "can't create directory: $!" ;


刪除目錄  rmdir
rmdir('d:\perl\wzj')||die "can't remove diretory: $!";  #刪除之前目錄必須為空。

在某一目錄內找指定檔案:
例:在d盤下找311.txt
use strict ;
use File::Find ;
sub wanted{
  if ($_ eq "311.txt"){
      print $File::Find::name ;
      print "\n" ;
  }
}
find \&wanted ,"d:/";

列出指定目錄下所有的檔案,包含子目錄的內容:
use strict ;
use File::Find ;
sub wanted{

   if (-f $File::Find::name){    #判斷傳入的是檔案而不是目錄。
      print "remove $File::Find::name ";
      print "\n";
    #  unlink $File::Find::name ;
   }
}
find \&wanted,'E:\nero\Content' ;
查詢指定目錄下某型別檔案:
例:查詢e盤下所有exe檔案
use strict ;
use File::Find ;
sub wanted{
   if (-f $File::Find::name){
      if ($File::Find::name =~/\.exe$/i){

          print "remove $File::Find::name ";
          print "\n";
     }

    #  unlink $File::Find::name ;
   }
}
find \&wanted,'E://' ;

檔案複製
use File::Copy ;
use strict ;
copy("d:/book/三國演義.txt","d:/book/aa")||warn "could not copy files :$!" ;
#將d:/book/三國演義.txt複製到d:/book/aa下

檔案移動
use File::Copy ;
use strict ;
move("d:/book/ss.txt","d:/book/aa")||warn "could not copy files :$!" ;

檔案改名
use File::Copy ;
use strict ;
rename("d:/perl/tt.txt","d:/perl/tttttt.txt");
#將d:/perl/tt.txt改名為d:/perl/tttttt.txt