Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1489410
  • 博文数量: 408
  • 博客积分: 10036
  • 博客等级: 上将
  • 技术积分: 4440
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-06 13:57
文章分类

全部博文(408)

文章存档

2011年(1)

2010年(2)

2009年(1)

2008年(3)

2007年(7)

2006年(394)

我的朋友

分类:

2006-07-24 17:52:14

Perl文件及目录操作
   文件句柄(file handle)是Perl程序中为程序和外部世界提供I/O连接的名称。STDIN/STDOUT/STDERR也是Perl的文件句柄,分别代表标准输入/标准输出/标准错误输出。
打开及关闭文件 
open(FILENAME,"abc.txt"); 
  该调用为读文件打开,若为写文件而打开,需在文件名前加上大于号: 
open(FILENAME,">abc.txt"); 
  若要追加至文件尾,可在文件名前加上两个大于号: 
open(FILENAME,">>abc.txt"); 
   读写方式用:
open(FILENAME,"+
open(FILENAME,"+>abc.txt");
两者都可以可读可写。前者为非破坏性写,后者为破坏性写。
  以上几种open()格式在成功时返回真,失败时返回假。通常当需要给出出错提示时,可加入die()函数。例: 
open(OUTFILE,">/tmp/outfile")|| 
die "出错,不能建立/tmp/outfile\n"; 
  当只有open失败时,才会执行die给出出错提示。 
  对文件句柄的操作完成后,可以用close操作符关闭文件。如: 
close(OUTFILE); 
文件测试 
  Perl的文件操作也可以先测试文件是否存在,是否可读写等。如: 
$x="abc.txt"; 
if(-e $x) { #abc.txt是否存在? 
# 存在操作 
}
else { 
printf "文件不存在。\n"; 
 
以下为文件测试清单: 
-r 文件或目录可读 
-w 文件或目录可写 
-x 文件或目录执行 
-o 文件或目录归用户所有 
-R 文件或目录对真正用户可读 
-W 文件或目录对真正用户可写 
-X 文件或目录对真正用户执行 
-O 文件或目录归真正用户所有 
-e 文件或目录存在 
-z 文件存在且大小为0 
-s 文件或目录存在且不为0(返回字节数) 
-f 文件为普通文件 
-d 文件为目录 
-l 文件为符号链接 
-p 文件为命名管道(FIFO) 
-S 文件为一个套口(socket) 
-b 文件为块特殊文件 
-c 文件为字符特殊文件 
-t 打开tty控制台的文件句柄 
-u 文件或目录是设置用户ID号 
-g 文件或目录是设置用户组ID号 
-k 文件或目录的sticky位置位 
-T 文件是文本文件 
-B 文件是二进制文件 
-M 以天为单位的存在时间 
-A 以天为单位访问时间 
-C 以天为单位同代码更改时间 

删除文件 
  Perl的unlink()操作符可实现删除文件。如: 
unlink("abc.txt"); #删除abc.txt 
 
文件重命名 
  Perl的rename()操作符可实现文件重命名。如: 
rename("abc","zmd")||die "出错,不能更名"; 
  此时将abc更名为zmd,成功返回真,否则给出出错提示。 
 
目录操作 
  Perl中处理目录非常类似于处理文件。 
  打开目录句柄: 
opendir(ETC,"/etc")||die "出错,不能打开目录"; 
  关闭目录句柄: 
closedir(ETC); 
  创建目录: 
mkdir("zmd",0777)||die "不能创建zmd目录"; 
  0777为内部权限格式。 
  删除目录: 
rmdir("zmd")||die "不能删除zmd目录"。
   读目录:
readdir(dirhandle);
  
另外还有telldirseekdirrewinddir等函数
阅读(797) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~