1.获取文件夹下所有文件个数

  1. echo ShuLiang("../0503lianxi");
  2. function ShuLiang($filename)
  3. {
  4. if(is_dir($filename))//判断是不是文件夹
  5. {
  6. $attr=glob($filename."/*");//是文件夹则遍历目录
  7. $sl=0;
  8. foreach($attr as $v)
  9. {
  10. if(is_dir($v))
  11. {
  12. $sl=$sl+ShuLiang($v);
  13. }
  14. else
  15. {
  16. $sl++;
  17. }
  18. }
  19. return $sl;
  20. }
  21. else if(is_file($filename))
  22. {
  23. return 1;
  24. }
  25. else
  26. {
  27. return 0;
  28. }
  29. }

  

2.获取文件夹下所有文件大小

方法1:

  1. echo Size("../0505lianxi");
  2. function Size($filename)
  3. {
  4. if(is_dir($filename))//判断是否是文件夹
  5. {
  6. $attr=glob($filename."/*");//遍历文件夹
  7. $size=0;
  8. foreach($attr as $v)
  9. {
  10. if(is_dir($v))
  11. {
  12. $size=filesize($filename)+Size($v);
  13. }
  14. else
  15. {
  16. $size+=filesize($v);
  17. }
  18. }
  19. return $size;
  20. }
  21. else if(is_file($filename))
  22. {
  23. return filesize($filename);
  24. }
  25. else
  26. {
  27. return 0;
  28. }
  29.  
  30. }

  

方法2:

  1. echo dir_size("../0505lianxi");
  2. function dir_size($dir)
  3. {
  4. $dh = opendir($dir); //打开目录,返回一个目录流
  5. $size = 0; //初始大小为0
  6. while(false !== ($file = @readdir($dh)))
  7. { //循环读取目录下的文件
  8. if($file!='.' and $file!='..')
  9. {
  10. $path = $dir.'/'.$file; //设置目录,用于含有子目录的情况
  11. if(is_dir($path))
  12. {
  13. $size += $this->dir_size($path); //递归调用,计算目录大小
  14. }
  15. elseif(is_file($path))
  16. {
  17. $size += filesize($path); //计算文件大小
  18. }
  19. }
  20. }
  21. closedir($dh); //关闭目录流
  22. return $size; //返回大小
  23. }

  

3. 删除目录:(知道就好,不要轻易尝试,容易删除所有文件)

  1. <?php
  2. function deldir($dirname) {
  3. if(!file_exists($dirname)) {
  4. die("文件夹不存在!");
  5. }
  6. //如果是文件,直接删除即可
  7. if(is_file($dirname)) {
  8. unlink($dirname);
  9. exit();
  10. }
  11.  
  12. //打开目录资源
  13. $dir = opendir($dirname);
  14.  
  15. while($filename = readdir($dir)) {
  16. if($filename !="." && $filename!="..") { //*******
  17. $filename = $dirname."/".$filename;
  18.  
  19. if(is_dir($filename) ) {
  20. deldir($filename);
  21. }else {
  22. unlink($filename);
  23. }
  24.  
  25. }
  26. }
  27.  
  28. closedir($dir);
  29. rmdir($dirname);
  30. }

  

php 文件操作中几种方法整理的更多相关文章

  1. 【AS3】Flash与后台数据交换四种方法整理

    随着Flash Player 9的普及,AS3编程也越来越多了,所以这次重新整理AS3下几种与后台数据交换方法.1.URLLoader(URLStream)2.FlashRemoting3.XMLSo ...

  2. [转载]C#读写txt文件的两种方法介绍

    C#读写txt文件的两种方法介绍 by 大龙哥 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char ...

  3. java分享第十六天( java读取properties文件的几种方法&java配置文件持久化:static块的作用)

     java读取properties文件的几种方法一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取Propert ...

  4. .net中创建xml文件的两种方法

    .net中创建xml文件的两种方法 方法1:根据xml结构一步一步构建xml文档,保存文件(动态方式) 方法2:直接加载xml结构,保存文件(固定方式) 方法1:动态创建xml文档 根据传递的值,构建 ...

  5. MySQL命令执行sql文件的两种方法

    MySQL命令执行sql文件的两种方法 摘要:和其他数据库一样,MySQL也提供了命令执行sql脚本文件,方便地进行数据库.表以及数据等各种操作.下面笔者讲解MySQL执行sql文件命令的两种方法,希 ...

  6. C#读写txt文件的两种方法介绍

    C#读写txt文件的两种方法介绍 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出 ...

  7. .net(C#)操作文件的几种方法汇总

    .net(C#)操作文件的几种方法汇总 System.IO命名空间下类的用法:在System.IO名称空间中包含了用于文件输入输出的主要类.File:实用类,提供许多静态方法,用于移动.复制和删除文件 ...

  8. 【转】 分析iOS Crash文件:符号化iOS Crash文件的3种方法

    当你的应用提交到AppStore或者各个渠道之后,请问你多久会拿到crash文件?你如何分析crash文件的呢? 上传crash文件 你的应用应当有模块能够在应用程序crash的时候上传crash信息 ...

  9. spring 配置文件 引入外部的property文件的两种方法

    spring  的配置文件 引入外部的property文件的两种方法 <!-- 引入jdbc配置文件    方法一 --> <bean id="propertyConfig ...

随机推荐

  1. T-SQL事务实例

    begin try begin tran ,'); ; --RAISERROR ('Error raised in TRY block.',16,1); commit tran end try beg ...

  2. javaWeb实现使用邮箱邮件找回密码功能

    JSP+Jmail+JavaBean 发邮件(转)2010-08-23 18:052007年04月14日 14:32/* * SendMail.java * * Created on 2007年3月3 ...

  3. 网络请求时 返回 App Transport Security has blocked a cleartext HTTP

    如上图,是因为 Xcode7 没有对 plist 进行 http 请求的配置  所致 这时需要  加上上面的plist的红框中 的内容  并且 设置 为 yes  如下图

  4. New ipad install Metasploit(New ipad 安装Metasploit)

    Title:New ipad install Metasploit(New ipad 安装Metasploit) --2012-09-19 11:35 越狱以后,Ssh或者终端Ipad,把屏幕锁定最好 ...

  5. Android 之形状Drawable

    形状Drawable资源允许使用 <shape>标记指定基本形状的尺寸.背景.轮廓线,从而定义这些基本形状. 每个形状都包含一个类型(通过shape属性指定).定义该形状尺寸的属性,以及指 ...

  6. Javascript url 小逻辑

    情况1 : var xhr = new XMLHttpRequest(); xhr.open("GET", "/api/products", true); xh ...

  7. UNIQUE NullAble

    一般情况 UNIQUE 不应该出现nullable的 但是如果我们要支持也是有办法的,就是写一个filter. https://msdn.microsoft.com/en-us/library/ms1 ...

  8. Entity Framework with MySQL 学习笔记一(insert,update,delete)

    先说说 insert 吧. 当EF执行insert时,如果我们传入的对象是有关联(1对多等)的话,它会执行多个语句 insert到多个表, 并且再select出来填充我们的属性(因为有些column默 ...

  9. VCRedist.exe静默安装方法(转)

    INNO setup 制作安装包  的时候,发布VC++运行时 [Run]Filename: {app}vcredist_x86.exe; Parameters: /q; WorkingDir: {t ...

  10. Android attrs.xml文件中属性类型format值的格式

    "reference" //引用 "color" //颜色 "boolean" //布尔值 "dimension" // ...