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下,你把一个文件丢进记事本 ...
随机推荐
- PURGE 的用法说明
PURGE PurposeUse the PURGE statement to remove a table or index from your recycle bin and release al ...
- oracle 帐号scott被锁定 如何解锁
由于多次输入:账号 密码不对 oracle 帐号scott被锁定 如何解锁: 具体操作步骤如下:C:> sqlplus请输入用户名:sys输入口令:sys as sysdba //注意:在口令这 ...
- C# 递归函数详细介绍及使用方法
什么是递归函数/方法? 任何一个方法既可以调用其他方法也可以调用自己,而当这个方法调用自己时,我们就叫它递归函数或递归方法. 通常递归有两个特点: 1. 递归方法一直会调用自己直到某些条件被满足 2. ...
- aspnetcore 认证相关类简要说明一
首先我想要简要说明是AuthenticationScheme类,每次看到Scheme这个单词我就感觉它是一个很高大上的单词,其实简单翻译过来就是认证方案的意思.既然一种方案,那我们就要知道这个方案的名 ...
- laravel with嵌套的渴求式加载
今天在通过需求表A查询场地类型表B,然后通过表B的场地类型id去查询表C场地类型名的时候遇到了一个小的问题. 需求表A的字段:id.user_id .name等等: 中间表B的字段:id.appeal ...
- oracle中RAW数据类型
近日在研究v$latch视图时,发现一个从未见过的数据类型.v$latch 中ADDR属性的数据类型为RAW(4|8) 同时也发现v$process中的ADDR属性的数据类型也为RAW(4|8).于 ...
- java冒泡排序-选择排序-插入排序-使用API中文文档直接调用函数
import java.util.Arrays; public class ArrayDemo2_3 { public static void main(String []args) { //---- ...
- TreadingTCPServer
TreadingTCPServer实现的socket服务器内部会为每个client创建一个线程,该线程用来和客户端进行交互. 1.TreadingTCPServer基础 使用TreadingTCPSe ...
- JavaScript设计模式之设计原则
何为设计 即按照哪一种思路或者标准来实现功能,功能相同,可以有不同的设计方案来实现 伴随着需求的增加,设计的作用就会体现出来,一般的APP每天都在变化,更新很快,需求不断在增加,如果设计的不好,后面很 ...
- [Python 网络编程] TCP Client (四)
TCP Client 客户端编程步骤: 创建socket对象 连接到服务端的ip和port,connect()方法 传输数据 使用send.recv方法发送.接收数据 关闭连接,释放资源 最简单的客户 ...