php之文件与目录的操作

时间:2022-09-30 16:40:25

今天在做一个学生信息关系系统,遇到了有关文件与目录操作的一些知识,下面简单地做一下总结:

1.目录操作:

<?php
header("content-type:text/html;charset=utf-8");
/*
@ 下面进行有关php中的目录的相关操作
*/
$dirname="C:\Users\Cqq\Desktop\phptest";

function listdir($dirname){
@ $ds=opendir($dirname);
while(($file=readdir($ds))!==false){
$filename=$dirname.'/'.$file;
if($file!='.' && $file!='..'){
if(is_dir($filename)){
listdir($filename);
}else{
echo "文件:".$file."<br/>";
echo "文件路径:".dirname($file)." 文件名称:".basename($file)."<br/>";
}
}

}
closedir($ds);
}

//调用函数
listdir($dirname);

/*
@ 下面是关于copy函数的调用
*/
$newdir="C:\Users\Cqq\Desktop\dck";
function copydir($dirname,$newdir){
//首先创建一个新的文件
@ mkdir($newdir);
@ $dss=opendir($dirname);
while(($files=readdir($dss))!==false){
if($files!='.' && $files!=".."){
$filePath=$dirname."/".$files;
$newfilwPath=$newdir."/".$files;
if(is_dir($filePath)){
copydir($filePath,$newfilwPath);
}else{
//拷贝文件
copy($filePath,$newfilwPath);
}
}
}
closedir($dss);
}
copydir($dirname,$newdir);

//下面是计算文件所占的内存空间

function getFileSize($dirname){
@ $ds=opendir($dirname);
static $size=0;
while(($file=readdir($ds))!==false){
if($file!='.' && $file!='..'){
$filename=$dirname.'/'.$file;
if(is_dir($filename)){
getFileSize($filename);
}else{
$size=$size+filesize($filename);
}
}
}
return $size;
closedir($ds);
}

echo(getFileSize($dirname))."<br/>";

//下面我们写一个删除文件的操作
function delFile($newdir){
@ $ds=opendir($newdir);
while(($file=readdir($ds))!==false){
if($file!='.' && $file!='..'){
$filename=$newdir.'/'.$file;
if(is_dir($filename)){
delFile($filename);
}else{
@ unlink($filename);
}
}
}
closedir($ds);
return rmdir($newdir);
}

//调用删除的方法
delFile($newdir);

//判断文件是否可读
//is_readable($path);
//判断文件是否存在
//file_exists($path);
//文件类型
//filetype($path);
//计算文件大小
//filesize($path);
//一个目录所占的磁盘容量
//disk_total_space($filepath);
/*
文件的最后访问时间 fileatime();
文件的最后修改时间 filectime();
文件的最后修改时间 filemtime();-
*/
?>

2.文件的读写操作:

<?php
header("content-type:text/html;charset=gb2312");
/***
下面进行文件的读写的操作
**/
//打开文件 fopen($dirpath);
//读操作 fread();fgets(); fread()需要将两个参数都要填写完整,而fgets()的第二个默认的参数为1k
//写操作 fwrite() ;fputs();
//feof() 判断文件是否已经到末尾
//关闭文件 fclose($dir);

// @ $file=fopen('./a.txt','r');

// if(!$file){
// echo "该文件不存在!"."<br/>";
// }
// while(($count=fgets($file))!=eof){
// echo($count."<br/>");
// }
// fclose($file);

//下面要建立一个新的文件
@ $files=fopen("./cqq.txt",'w');

if(!$files){
echo "文件不存在"."<br/>";
}

//往文件里面写东西
$str="fhjksdhfjkashlkoieioqoimsn,mhcnm,nkkalsdjkehfkljwejhijhasklj";
//fputs(file,string,length);
//fwrite(file,string,length);
fputs($files,$str);
// fputs($files,"\r\n");加入这一句话是为了向文件中写入换行
fputs($files,"\r\n");
fwrite($files,$str);
fwrite($files,$str);
fwrite($files,$str);
fclose($files);

?>

动手写一下代码,你才能真正认识到再简单的知识,你也有可能会出错,加油.