您的位置:首页 > 其它

perl 文件目录操作

2017-03-03 18:13 225 查看
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

文件删除

1)my @files=<*.txt>;         
# 或者 my @files=glob "*.txt";

unlink @files;

2)unlink
glob "*.txt";

或者unlink
<*.txt>;

3)unlink
<b.txt>;

unlink <c.txt>;

或者

unlink "b.txt";

unlink "c.txt";

或者

unlink <b.txt>,<c.txt>;

或者

unlink "b.txt","c.txt";

当然也可以使用Linux系统命令system() 进行以上操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: