【代码学习】文件系统处理
一、概述
--------------------------------------------------------------------------------------------
1、文件类型
在windows系统下分为3种类型:file、dir、unknow
在UNIX系统下分为7种类型:block、char、dir、fifo、file、link和unknow
1 <?php 2 //获取在Linux系统下的文件类型 3 echo filetype('/etc/'); 4 echo filetype('/etc/passwd'); 5 //获取Window系统下文件类型 6 echo filetype('C:\Windows'); 7 echo filetype('C:\Windows\Win.ini'); 8 ?>
2、文件属性
1 filetype() --获取文件类型 2 is_dir() --判断给定文件是否是一个目录 3 语法结构:bool is dir 4 返回类型:如果文件名存在并且是一个目录则返回true,否则返回false 5 is_executable() --判断给定文件是否可执行 6 语法结构:bool is executable 7 返回类型:如果文件存在且可执行则返回true,否则返回false 8 is_file() --判断给定文件是否为一个正常文件 9 语法结构:bool is file 10 返回类型:如果文件存在且为正常的文件则返回true 11 is_link() --判断给定文件是否是一个符号链接 12 语法结构:bool is link 13 返回类型:如果文件存在并且是一个符号链接则返回true 14 is_readable() --判断给定文件是否可读 15 is_writeable() --判断指定文件是否可写 16 file_exists() --检查文件或目录是否存在 17 filesize() --获取文件大小(不能获取目录大小) 18 filectime() --获取文件的创建时间 19 filemtime() --获取文件的修改时间 20 fileatime() --获取文件的访问时间 21 stat() --获取文件大部分属性
二、目录的基本操作
--------------------------------------------------------------------------------------------
1、解析目录路径
Windows系统:D:/a/b/c.php 或 D:\a\b\c.php
Linux或UNIX系统:/a/b/c.php
2、路径相关的函数
(1)basename("url地址"[,去除部分])
返回路径中文件名部分
1 <?php 2 //包含指向文件路径的字符串 3 $path = "/www/php/test.php"; 4 echo basename($path); //输出test.php 5 echo basename($path,'php'); //输出test. 6 ?>
(2)dirname("url地址")
返回目录名部分
1 <?php 2 //包含指向文件路径的字符串 3 $path = "/www/php/test.php"; 4 echo dirname($path); //输出 /www/php 5 ?>
(3)pathinfo(文件路径[,需要的下标])
获取文件路径的详细信息,返回一个关联数组
1 <?php 2 //包含指向文件路径的字符串 3 $path = "/www/php/test.php"; 4 $path_parts = pathinfo($path); //返回指定路径中的基本名,目录名和扩展名 5 echo $path_parts['basename']; //输出test.php 6 echo $path_parts['dirname']; //输出/www/php/ 7 echo $path_parts['extension']; //输出php 8 ?>
3、遍历目录
1 <?php 2 //打开目录资源 3 $dir = opendir('phpMyAdmin'); 4 //读取目录 5 while($filename = readdir($dir)){ 6 //禁止操作.和.. 7 if($filename != '.' && $filename != '..'){ 8 //读取phpMyAdmin下的文件 9 $filename = './phpMyAdmin/' .$filename; 10 //读取目录和文件 11 if(is_dir($filename)){ 12 echo '目录' .$filename .'<br>'; 13 }else{ 14 echo '文件' .$filename . '<br>'; 15 } 16 } 17 } 18 //关闭目录资源 19 closedir($dir); 20 ?>
4、统计空间大小
1 disk_free_space() --统计可用空间大小 2 disk_total_space() --统计共用磁盘大小
5、建立和删除目录
(1)建立目录
每个目录下都具有 可读、可写、可操作三个权限。用数字代表三个权限可表示 可读 ->4,可写 ->2,可操作 ->1。
mkdir("目录名",权限) 权限需要八进制,所以要以0开头
1 <?php 2 mkdir("dir0"); //默认权限 3 mkdir("dir1",0644); //dir1目录下的文件有可读可写权限,同组用户有读的权限,其他用户哟读的权限 4 ?>
(2)删除目录
rmdir() -- 删除一个目录(只支持删除空目录)
unlink() -- 删除一个文件
1 <?php 2 function deldir($dirname){ 3 //判断是否存在文件或者文件夹 4 if(file_exists($dirname)){ 5 echo "文件夹不存在"; 6 } 7 //判断是否是一个文件 8 if(is_file($dirname)){ 9 unlink($dirname); 10 } 11 //打开目录 12 $dir = opendir($dirname); 13 //读取目录 14 while($filename = readdir($dir)){ 15 //排除文件夹中.和.. 16 if($filename != "." && $filename != ".."){ 17 //读取文件下所有文件 18 $filename = $dirname . '/' .$filename; 19 //判断是否为一个文件夹 20 if(is_dir($filename)){ 21 //调用deldir函数 22 deldir($filename); 23 }else{ 24 unlink($filename); 25 } 26 } 27 } 28 //关闭目录 29 closedir($dir); 30 //删除目录 31 rmdir($dirname); 32 } 33 deldir('wjxtgl'); 34 ?>
6、复制文件及目录
1 copy("复制的文件","复制文件的位置")