php获取某个目录大小

 

大致就是不知道目录下面又多少层目录, 也不知道又多少文件, 需要统计占用空间大小, 这个可以用在 相册/数据库占用/网络U盘 等程序中.

大致程序思想就是使用递规来计算目录占用空间多少, 然后再把这个占用空间的值写进文本文件里, 那么只要访问这个txt文件就知道占用了多少空间, 不用频繁获取而读磁盘, 节省资源. 每次用户如果上传的文件或者删除了文件, 那么又重新进行统计. 当然, 也可以把统计结果保存到数据库里.

<?
/**
 * File: fetch user directory use size
 * Author: heiyeluren <heiyeluren_AT_gmail_com>
 * Create: 2005-9-19 16:20
 * Modifed: 2005-9-19 16:41
 */

/*** 基本函数 ***/

//计算目录大小
function countDirSize($dir)
{
 $handle = opendir($dir);
 while (false!==($FolderOrFile = readdir($handle)))
 {
  if($FolderOrFile != "." && $FolderOrFile != "..")
  { 
   if(is_dir("$dir/$FolderOrFile")) {
    $sizeResult += getDirSize("$dir/$FolderOrFile");
   } else {
    $sizeResult += filesize("$dir/$FolderOrFile");
   }
  } 
 }
 closedir($handle);
 return $sizeResult;
}

//保存用户文件大小
function saveDirSize($userDir)
{
  $userDirSize = countDirSize($userDir);
  if (!$fp = fopen($userDir."/dir_size.txt", "w+")) {
    die("Open file failed");
  } else {
   fwrite($fp, $dirSize);
  } 
}

//获取用户目录的大小
function getDirSize($userDir)
{
 $user = addslashes($userDir);
 $sizeFile = $userDir."/dir_size.txt";
 if (!$fp = fopen($sizeFile, "r") {
  return 0;
 } else {
  $dirSize = fread($fp, filesize($sizeFile));
 }
 return $dirSize;
}

/*** 调用实例 ***/
$user = "heiyeluren";
$userPath = "./user/".$user;

//如果用户执行了删除或者上传文件的操作就重新获取目录大小
if ($action == "upload" || $action == "delete") {
 saveDirSize($userPath);
}

$userDirSize = getDirSize($userPath)/1024;
echo "用户: ".$user;
echo "占用空间: ".$userDirSize;

?>

 

时间: 2025-01-03 08:15:47

php获取某个目录大小的相关文章

php获取某个目录大小的代码_php技巧

大致程序思想就是使用递规来计算目录占用空间多少, 然后再把这个占用空间的值写进文本文件里, 那么只要访问这个txt文件就知道占用了多少空间, 不用频繁获取而读磁盘, 节省资源. 每次用户如果上传的文件或者删除了文件, 那么又重新进行统计. 当然, 也可以把统计结果保存到数据库里. 复制代码 代码如下: function countDirSize($dir) { $handle = opendir($dir); while (false!==($FolderOrFile = readdir($ha

php获取目录大小的方法

大致就是不知道目录下面又多少层目录, 也不知道又多少文件, 需要统计占用空间大小, 这个可以用在 相册/数据库占用/网络U盘 等程序中. 大致程序思想就是使用递规来计算目录占用空间多少, 然后再把这个占用空间的值写进文本文件里, 那么只要访问这个txt文件就知道占用了多少空间, 不用频繁获取而读磁盘, 节省资源. 每次用户如果上传的文件或者删除了文件, 那么又重新进行统计. 当然, 也可以把统计结果保存到数据库里. <? /** * File: fetch user directory use

java下获取目录大小有误差

问题描述 NewClass3.javapublicstaticvoidmain(String[]args)throwsFileNotFoundException,IOException{Filefile=newFile("/home/user1");NewClass3obj=newNewClass3();longspace=obj.getDirSpace(file);System.out.println(space);}publiclonggetDirSpace(Filemydir){

获取文件夹大小(PHP函数)

函数 <?php     // 获取文件夹大小    function getDirSize($dir)    {         $handle = opendir($dir);        while (false!==($FolderOrFile = readdir($handle)))        {             if($FolderOrFile != "." && $FolderOrFile != "..")     

PHP获取文件夹大小函数用法实例

  本文实例讲述了PHP获取文件夹大小函数用法.分享给大家供大家参考.具体如下: ? // 获取文件夹大小 function getDirSize($dir) { $handle = opendir($dir); while (false!==($FolderOrFile = readdir($handle))) { if($FolderOrFile != "." && $FolderOrFile != "..") { if(is_dir("

C# 如何获取指定目录包含的文件和子目录

 如何获取指定目录包含的文件和子目录 1. DirectoryInfo.GetFiles():获取目录中(不包含子目录)的文件,返回类型为FileInfo[],支持通配符查找: 2. DirectoryInfo.GetDirectories():获取目录(不包含子目录)的子目录,返回类型为DirectoryInfo[],支持通配符查找: 3. DirectoryInfo. GetFileSystemInfos():获取指定目录下(不包含子目录)的文件和子目录,返回类型为FileSystemInf

PHP统计目录中文件以及目录中目录大小的方法_php技巧

本文实例讲述了PHP统计目录中文件以及目录中目录大小的方法.分享给大家供大家参考,具体如下: <?php //循环遍历目录中所有的文件,并统计目录和文件的大小 $dirName="phpMyAdmin"; $dir=opendir($dirName); //返回一个资源类型 while($fileName=readdir($dir)){ $file=$dirName."/".$fileName; if($fileName!="." &

PHP获取文件夹大小函数用法实例_php技巧

本文实例讲述了PHP获取文件夹大小函数用法.分享给大家供大家参考.具体如下: <?php // 获取文件夹大小 function getDirSize($dir) { $handle = opendir($dir); while (false!==($FolderOrFile = readdir($handle))) { if($FolderOrFile != "." && $FolderOrFile != "..") { if(is_dir(

Android获取应用程序大小和缓存的实例代码_Android

info package com.qin.appsize; import android.content.Intent; import android.graphics.drawable.Drawable; //Model类 ,用来存储应用程序信息 public class AppInfo { private String appLabel; //应用程序标签 private Drawable appIcon ; //应用程序图像 private Intent intent ; //启动应用程序