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(), ...
随机推荐
- Java GC系列(3):垃圾回收器种类
本文由 ImportNew - 好好先生 翻译自 javapapers. 目录 垃圾回收介绍 垃圾回收是如何工作的? 垃圾回收的类别 垃圾回收监视和分析 在这篇教程中我们将学习几种现有的垃圾回收器.在 ...
- nyoj-----284坦克大战(带权值的图搜索)
坦克大战 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 Many of us had played the game "Battle city" ...
- Java 容器(集合)
import java.util.*; 一.基础概念 1.什么是容器? 2.为什么需要容器? 3.容器的分类? 二.重点知识 List接口 Collections类 (1)为什么需要? Collect ...
- linux如何修改主机名
一:#hostname hn1 二:修改/etc/sysconfig/network中的 HOSTNAME=hn1三:修改/etc/hosts文件 127.0.0.1 hn1
- Mysql 字符串处理函数
函数: 1.从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my ...
- eclipse设置总结
1.java函数折叠: windows->perferences->General->Editors->Structured Text Editors windows-> ...
- VBA SQLServer 基本操作
读取MS SQL Server数据表数据,并将它保存到excel工作表中 Sub ReturnSQLrecord() 'sht 为excel工作表对象变量,指向某一工作表 Dim i As Int ...
- sqlserver 2008 存储过程调用存储过程或方法
函数:拆分字符串,并返回一个table CREATE FUNCTION [dbo].[f_splitSTR](@s varchar(max), --待分拆的字符串@split varchar(10) ...
- 【bzoj2281】[Sdoi2011]黑白棋
博弈论---Nimk问题. dp再搞搞. 很容易看出,该游戏的终态是每两个棋子都紧靠着.当一颗棋子移动,另一方与该棋子对应的那一刻可以立即追上,使得仍旧紧靠,最终棋子动弹不得,游戏结束. 还能看出,对 ...
- js基础之面向对象
一.基本概念 Array类 ————> 不具备实际的功能,只能用来构造对象 arr对象 ————> 有实际的功能,被类给构造出来 如:var arr=new Array(); proto ...