文件操作

Posted 社会主义虫不胖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件操作相关的知识,希望对你有一定的参考价值。

 操作内容

1.只能操作服务器的文件
2.文件包含目录和文件

 

//判断文件类型
//var_dump(filetype("../0529")); //返回文件的类型:目录dir 文件file
//var_dump(is_dir("../11.php")); //判断路径是不是目录
//var_dump(is_file("../11.php")); //判断路径是不是文件

//文件属性
//echo date("Y-m-d H:i:s",fileatime("../11.php")); //上次访问时间
//echo date("Y-m-d H:i:s",filectime("../11.php")); //创建时间
//echo date("Y-m-d H:i:s",filemtime("../11.php")); //修改时间
//echo filesize("../11.php"); //文件大小,字节为单位
//var_dump(file_exists("../12.php")); //判断文件是否存在

//文件路径
//当前路径:./  上级目录:../  下级目录:目录/  根路径:/
//如果是php里面的根(/)路径代表:磁盘的根
//如果是在网页里面的根(/)路径代表:服务器的根(www目录)
//echo $_SERVER[‘DOCUMENT_ROOT‘]; //取服务器的根路径
//echo basename("../11.php"); //从路径中获取带后缀的文件名
//echo basename("../11.php",".php"); //从路径中获取不带后缀的文件名
//echo dirname("../0529/aa.php"); //取路径中除去文件名的目录
//var_dump(pathinfo("../0529/aa.php")); //返回目录信息,格式为数组
//echo realpath("../0529/aa.php"); //将相对路径转化为绝对路径

//操作目录
//var_dump(glob("../tp/*.php")); //获取目录下所有的文件*  某个后缀的*.php

$attr = glob("../tp/*");
for($i=0;$i<count($attr);$i++)
{
	echo $attr[$i]."<br>";
}

  遍历读取所有文件和文件夹数量

 

//定义两个变量
$filenum = 0;
$dirnum = 0;

Num("../shangchuan");

echo "文件的数量为:".$filenum."<br>";
echo "文件夹的数量为:".$dirnum;

function Num($url)
{
	global $filenum;
	global $dirnum;
	
	//判断给的路径是不是文件	
	if(is_file($url))
	{
		$filenum = 1;
		return $filenum;
		exit;
	}
	
	//获取目录下所有的子文件
	$attr = glob($url."/*");
	
	//遍历所有的子文件
	foreach($attr as $v)
	{
		if(is_file($v))
		{
			$filenum++;
		}
		else
		{
			$dirnum++;
			Num($v);
		}
	}
}

  

 计算所有文件数量

 

echo Num("../tp");

function Num($url)
{
	$filenum = 0;
	//判断给的路径是不是文件	
	if(is_file($url))
	{
		$filenum = 1;
		return $filenum;
		exit;
	}
	
	//获取目录下所有的子文件
	$attr = glob($url."/*");
	
	//遍历所有的子文件
	foreach($attr as $v)
	{
		if(is_file($v))
		{
			$filenum++;
		}
		else
		{
			$filenum = $filenum + Num($v);
		}
	}
	
	return $filenum;
}

  计算文件夹大小

echo DirSize("../fenye");
function DirSize($url)
{
	//定义变量存储文件大小
	$size = 0;
	
	//判断给的路径是不是文件
	if(is_file($url))
	{
		return filesize($url);
		exit;
	}
	
	//如果是目录,取目录下的所有文件
	$attr = glob($url."/*");
	
	//遍历子文件
	foreach($attr as $v)
	{
		if(is_file($v))
		{
			$size = $size + filesize($v);
		}
		else
		{
			$size = $size + DirSize($v);
		}
	}
	
	return $size;
}

  使用目录资源遍历

 

$dir = opendir("../tp"); //打开目录资源

//echo readdir($dir); //读取目录下的文件,执行一次读一个

while($wj = readdir($dir))
{
	echo $wj."<br>";
}

closedir($dir); //关闭目录资源

//rewinddir($dir);//将指针重置



//使用readdir()读取的第一个和第二个内容
//第一个是. 代表当前目录
//第二个是.. 代表上级目录
//在使用目录资源遍历文件夹的时候要注意将前两个排除

  

 

以上是关于文件操作的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode 如何操作用户自定义代码片段(快捷键)

代码片段 - Golang 实现集合操作

Apollo Codegen 没有找到生成代码的操作或片段

VSCode自定义代码片段——.vue文件的模板

操作栏标签片段中的片段?