PHP中目录的操作
文件的操作:创建文件,删除文件,重命名文件rename(),移动/复制文件,读取,大小(PHP都有内置的函数)
目录的操作:创建目录(有),删除目录,复制目录,统计目录大小,遍历(自己定义函数)
一.遍历目录
opendir()
readdir()
closedir()
rewinddir()
<?php $dirname="phpMyAdmin"; echo "文件总大小:".toSize(dirsize($dirname))."<br>"; //opendir()打开一个目录句柄 $dir=opendir($dirname); //readdir()从目录句柄中读取条目 while($fileName=readdir($dir)){ //要判断$dirname目录下的文件 $file=$dirname."./".$fileName; //删除文件读取中的“.”和“..” if($fileName!='.'&&$fileName!=".."){ //is_dir()判断的是当前目录下的文件 if(is_dir($file)){ //统计目录大小是没有内置的函数,所以我们要自己定义 echo "<font color='red'>".$fileName."---".date('Y-m-d H-i-s',fileatime($file))."------".toSize(dirsize($file))."-------<br>"; echo "</font><br>"; }else{ echo $fileName."-----".toSize(filesize($file))."------"."<br>"; } } } //closedir()关闭目录句柄 closedir($dir); //文件大小单位转换函数 function toSize($size){ $dw=""; if($size>pow(2,30)){ $size=round($size/pow(2,30),2); $dw="GB"; }else if($size>pow(2,20)){ $size=round($size/pow(2,20),2); $dw="MB"; }else if($size>pow(2,10)){ $size=round($size/pow(2,10),2); $dw="KB"; }else{ $dw="BT"; } return $size.$dw; } //统计目录大小 function dirsize($dirName){ //文件大小的初始值 $dirsize=0; $dir=opendir($dirName); while($fileName=readdir($dir)){ $file=$dirName."./".$fileName; if($fileName!="." && $fileName!=".."){ if(is_dir($file)){ //递归实现 $dirsize+=dirsize($file); }else{ $dirsize+=filesize($file); } } } closedir($dir); return $dirsize; } ?>
创建目录
mkdir();新建一个空目录
删除目录没有内置函数,要自定义
删除目录
rmdir();删除一个空目录
<?php //创建一个空目录 //mkdir("update",755); //删除目录,只能删除空目录 //rmdir("update"); $dirname="./mYphp"; deldir($dirname); function deldir($dirName){ if(file_exists($dirName)){ $dir=opendir($dirName); while($fileName=readdir($dir)){ if($fileName!="." && $fileName!=".."){ $file=$dirName."./".$fileName; if(is_dir($file)){ echo "删除目录".$file."成功!<br>"; deldir($file); }else{ unlink($file); } } } closedir($dir); rmdir($dirName); } } ?>
文件、目录的重命名和移动
rename();
<?php $dirName="./phpMyAdmin"; //文件改名 rename("$dirName", "aaa"); $dirName="./aaa"; //文件移动 rename("$dirName","../aaa"); ?>
复制目录
要自定义
<?php/*复制目录没有内置函数,所以我们要自己定义*/ $dirname="./phpMyAdmin"; copydir($dirname,"./aaa"); //目录的复制函数function copydir($dirsrc,$dirto){ //判断目标是否是目录 if(is_file($dirto)){ echo "目标不是目录"; return ; } //判断要复制到得目录是否存在 if(!file_exists($dirto)){ mkdir($dirto); } //打开目录 $dir=opendir($dirsrc); while($fileName=readdir($dir)){ if($fileName!="." && $fileName!=".."){ $fileSrc=$dirsrc."./".$fileName; $fileTo=$dirto."./".$fileName; if(is_dir($fileSrc)){ //递归 copydir($fileSrc,$fileTo); }else{ //文件的复制函数 copy($fileSrc, $fileTo); } } } closedir($dir);}?>
PHP中目录的操作的更多相关文章
- Win32中目录的操作
1 系统和当前目录 1.1 获取Windows目录 UINT GetWindowsDirectory( LPTSTR lpBuffer, //BUFF的地址 UINT uSize //BUFF ...
- C语言中关于对目录的操作
原文地址:C语言中关于对目录的操作 目录的操作不论是在嵌入式产品还是应用软件编程都是必不可少的,不同的开发语言可能略有不同,笔者主要是讨论在Linux平台下对目录的一系列操作: 1.获取当前目录操作: ...
- python中OS模块操作文件和目录
在python中执行和操作目录和文件的操作是通过内置的python OS模块封装的函数实现的. 首先导入模块,并查看操作系统的类型: >>> import os os.name # ...
- Objective-C:Objective-C:文件中一些对目录进行操作的函数
IO文件中,一些对目录进行操作的函数:获取.切分.组合 一些对目录进行操作的函数: 获取用户的姓名:(NSString*)NSUserName() ; ———>NSString *Str ...
- 【Java EE 学习 33 上】【JQuery样式操作】【JQuery中的Ajax操作】【JQuery中的XML操作】
一.JQuery中样式的操作 1.给id=mover的div采用属性增加样式.one $("#b1").click(function(){ $("#mover" ...
- git工作中的常用操作
上班开始,打开电脑,git pull:拉取git上最新的代码: 编辑代码,准备提交时,git stash:将自己编辑的代码暂存起来,防止git pull时与库中的代码起冲突,否则自己的代码就白敲了: ...
- 我的Android六章:Android中SQLite数据库操作
今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...
- 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据操作
http://www.cnblogs.com/wgp13x/p/4934521.html 内容一样,样式好的版本. 使用Hive或Impala执行SQL语句,对存储在Elasticsearch中的数据 ...
- Delphi中文本文件的操作
Delphi中文本文件的操作 相关知识内容: 在对文本文件进行任何处理之前,首先要打开此文本文件.声明变量:通过此变量可以来引用一个文本文件. 打开一个文件需要两步:首先是 AssignFile(), ...
随机推荐
- 在VBA中调用工作表函数
虽然VBA几乎可以完成所有工作表函数的功能,但是有时候在无法打开思路的时候,适当调用一些工作表函数也未尝不可,在VBA中调用工作表函数需要用到 WorksheetFunction对象,例如: Work ...
- Mybatis 学习-4
Category与Article双向一对多关联 (1)将CategoryDao进行实现 public class CategoryDaoImpl extends BaseDao<Category ...
- hdu---(5038)Grade(胡搞)
Grade Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Sub ...
- 190. Reverse Bits -- 按位反转
Reverse bits of a given 32 bits unsigned integer. For example, given input 43261596 (represented in ...
- H-The Cow Lineup(POJ 1989)
The Cow Lineup Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5367 Accepted: 3196 De ...
- node.js+WebStorm路径问题
目录路径 :A文件夹下有B.C文件夹和app.js文件.B文件夹下有webserver.js文件等. A B webserver.js ...... C ...... app.js WebStorm配 ...
- js正则表达式和replace
javascript中replace与正则表达式 replace()最简单的算是能力就是简单的字符替换.示例代码如下: <script language="javascript&quo ...
- TableLayout练习
<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android=" ...
- dos.orm学习地址
os.ORM(原Hxj.Data)于2009年发布.2015年正式开源,该组件已在数百个成熟项目中应用,是目前国内.Net用户量最多.最活跃.最完善的国产ORM.初期开发过程参考了NBear与MySo ...
- javascript photo1