php文件相关操作
//遍历目录及文件
function myBianli($dirname){
//1.打开
$dir = opendir($dirname);
//2.读取
while($filename = readdir($dir)){
if($filename != '.' && $filename != '..'){
//拼接路径
$path = $dirname.'/'.$filename;
if(is_dir($path)){
echo '目录:<a href="?path='.$path.'">'.$path.'</a><hr/>';
}else{
echo '文件:'.$path.'<br/>';
}
}
}
//3.关闭
closedir($dir);
}
//移动文件
<?php
//移动目录
//@param1:原路径
//@param2:目标路径
myReName('原路径','目标路径');
function myReName($dirsrc,$dirto){
//1.判断目标是否是目录
if(is_file($dirto)){
echo '目标不是目录不能创建';
return;
}
//2.判断目标目录是否存在 不存在则创建
if(!file_exists($dirto)){
mkdir($dirto);
echo '创建目录:'.$dirto.'成功<br/>';
}
//3.打开原目录
$dir = opendir($dirsrc);
//4.循环读取源目录
while($filename = readdir($dir)){
//过滤点和点点
if($filename != '.' && $filename != '..'){
//拼接源完整路径
$file1 = $dirsrc.'/'.$filename;
//拼接目标完整路径
$file2 = $dirto.'/'.$filename;
//判断源完整路径是否是目录
if(is_dir($file1)){
//调用函数
myReName($file1,$file2);
}else{
//是文件
rename($file1,$file2);
echo '移动文件:'.$file1.'成功<br/>';
}
}
}
//5.关闭源目录
closedir($dir);
//6.删除源目录
rmdir($dirsrc);
}
//统计目录大小
<?php
$size = dirsize('./daye');
echo $size.'<hr/>';
$s = tosize($size);
echo $s.'<br/>';
function dirsize($dirname){
//统计目录大小
$total = 0;
//1.打开目录
$dir = opendir($dirname);
//2.循环读取
while($filename = readdir($dir)){
//2.1过滤掉点和点点
if($filename != '.' && $filename != '..'){
//2.2拼接完整路径
$path = $dirname.'/'.$filename;
//2.3是文件还是目录
if(is_dir($path)){
$total += dirsize($path);
}else{
$total += filesize($path);
}
}
}
//3.关闭目录
closedir($dir);
return $total;
}
function tosize($size){
if($size > pow(1024,3)){
$dw = 'GB';
$size = round($size/pow(1024,3),2);
}elseif($size > pow(1024,2)){
$dw = 'MB';
$size = round($size / pow(1024,2),2);
}elseif($size > 1024){
$dw = 'KB';
$size = round($size / 2014,2);
}else{
$dw = 'byte';
}
return $size.$dw;
}
/*
1024byte = 1kb
1024kb = 1mb
1024mb = 1GB
*/
//统计数量
<?php
$dirnum = 0;
$filenum = 0;
total('目录路径',$dirnum,$filenum);
echo '目录数:'.$dirnum;
echo '<br/>文件数:'.$filenum;
//统计目录和文件个数
function total($dirname,&$dirnum,&$filenum){
//1.打开目录
$dir = opendir($dirname);
//2.循环读取目录
while($filename = readdir($dir)){
// 2.1过滤掉点和点点
if($filename != '.' && $filename != '..'){
// 2.2拼接完整路径
$path = $dirname.'/'.$filename;
// 2.3判断是否是目录
if(is_dir($path)){
//调用自己
total($path,$dirnum,$filenum);
$dirnum ++;
}else{
//不是目录 是文件
$filenum ++;
}
}
}
//3.关闭目录
closedir($dir);
}
php文件相关操作的更多相关文章
- Git基本命令 -- 基本工作流程 + 文件相关操作
可以先找一个已经被git管理的项目, 我就使用这个项目吧: https://github.com/solenovex/ID3-Editor 基本工作流程 克隆以后呢, 进入该目录查看一下状态: 然后添 ...
- python文件相关操作
Python文件相关操作 打开文件 打开文件,采用open方法,会将文件的句柄返回,如下: f = open('test_file.txt','r',encoding='utf-8') 在上面的代码中 ...
- VC++文件相关操作的函数封装实现
在开发编译工具中,需要用到文件的相关操作,于是就封装了相关的函数实现: //判断文件是否存在 BOOL FileIsExist(CString strFileName) { CFileFind fin ...
- 【原创】Linux基础之gz文件相关操作
gz文件不需要解压即可进行相关操作 $ zcat test.log.gz $ zmore test.log.gz $ zless test.log.gz $ zgrep '1.2.3.4' test. ...
- Nodejs文件相关操作
欢迎关注我的博客我在马路边 适用人群 本文适用于刚接触Node的小白,毕竟我也是小白,大佬请绕行. Node文件操作 在实际开发中遇到很多有关文件及文件夹的操作,比如创建.删除文件及文件夹,文件拷贝. ...
- linux学习笔记一----------文件相关操作
一.目录结构 二.文件管理操作命令(有关文件夹操作,使用Tab键自动补全文件名(如果多个默认第一个)) 1.ls 查看目录信息:ls -l 查看目录详细信息(等价于ll 某些系统不支持) 2.pwd ...
- UWP中的文件相关操作
最近开始做UWP开发,图省事儿就把自己之前一个Winform项目的一部分代码拷贝到了新写的UWP项目中来.整出了一些幺蛾子,下面做一个记录. 首先提一个重点就是:UWP里关于文件的操作尽量用Stora ...
- UNIX高级环境编程(5)Files And Directories - 文件相关时间,目录文件相关操作
1 File Times 每个文件会维护三个时间字段,每个字段代表的时间都不同.如下表所示: 字段说明: st_mtim(the modification time)记录了文件内容最后一次被修改的时 ...
- 关于php的ini文件相关操作函数浅析
在小公司,特别是创业型公司,整个服务器的搭建一般也是我们 PHP 开发工程师的职责之一.其中,最主要的一项就是要配置好服务器的 php.ini 文件.一些参数会对服务器的性能产生深远的影响,而且也有些 ...
- c语言中文件相关操作
一 .首先介绍一下数据文件的类型: 1.二进制文件(映像文件):在内存中以二进制形式存取. 2.文本文件(ascii文件):以ascii码形式存取的文件. 通俗的讲,在Mac下,你把一个文件丢进记事本 ...
随机推荐
- 基于bootstrap模态框的alert弹窗
完成的效果如下: html代码: <!-- 弹出框 --> <div class="modal fade" id="alert_like" t ...
- Linux Swap扩容
最近在做rac,在环境检查的时候发现swap空间检查不通过,所以我们第一想到的是对swap进行扩容,那么swap扩容有哪些方法呢?这里主要介绍两种方法,一通过添加额外磁盘,扩展swap分区,二是通过本 ...
- iOS设计模式 - 策略
iOS设计模式 - 策略 效果 说明 1. 把解决相同问题的算法抽象成策略(相同问题指的是输入参数相同,但根据算法不同输出参数会有差异) 2. 策略被封装在对象之中(是对象内容的一部分),策略改变的是 ...
- windows 下 gdb 的安装
在 windows 下 gcc/g++ 的安装 这篇文章中已经提到,用MinGW Installation Manager可以方便地管理 MinGW 组件,因此使用该软件安装 gdb . 打开 Min ...
- C# 数据类型转换 显式转型、隐式转型、强制转型
C# 的类型转换有 显式转型 和 隐式转型 两种方式. 显式转型:有可能引发异常.精确度丢失及其他问题的转换方式.需要使用手段进行转换操作. 隐式转型:不会改变原有数据精确度.引发异常,不会发生任何问 ...
- FetchType与FetchMode的区别
使用例: @OneToMany(mappedBy="item",cascade=CascadeType.ALL,fetch=FetchType.EAGER) @Fetch(valu ...
- shell基础学习
1. #! /bin/bash #设置只读变量,只读变量不可修改myUrl="http://www.baidu.com"readonly myUrl #删除变量,unset不能删除 ...
- centos虚拟机安装,配置静态ip可以访问网络
centos安装过程中需要注意几个问题 1.选择安装的软件 默认选择的是mininal,应该选择GNEME Desktop 安装的过程中可以设置network 配置linux网络命令 具体配置 退出键 ...
- 搭建 PhoneGap 开发环境
一.JDK 下载以及安装.配置 参考:http://www.cnblogs.com/LO-ME/p/3530345.html 二.Android开发环境的搭建 参考:http://www.cnblog ...
- 在Django中使用Q()对象
转载于: http://www.smallerpig.com/1000.html 问题 一般我们在Django程序中查询数据库操作都是在QuerySet里进行进行,例如下面代码: >>& ...