function foldersize($path) {
$total_size = 0;
$files = scandir($path);
foreach($files as $t) {
if (is_dir(rtrim($path, '/') . '/' . $t)) {
if ($t<>"." && $t<>"..") {
$size = foldersize(rtrim($path, '/') . '/' . $t);
$total_size += $size;
}
} else {
$size = filesize(rtrim($path, '/') . '/' . $t);
$total_size += $size;
}
}
return $total_size;
}
function format_size($size) {
$mod = 1024;
$units = explode(' ','B KB MB GB TB PB');
for ($i = 0; $size > $mod; $i++) {
$size /= $mod;
}
return round($size, 2) . ' ' . $units[$i];
}
$SIZE_LIMIT = 5368709120; // 5 GB
$sql="select * from users order by id";
$result=mysql_query($sql);
while($row=mysql_fetch_array($result)) {
$disk_used = foldersize("C:/xampp/htdocs/freehosting/".$row['name']);
$disk_remaining = $SIZE_LIMIT - $disk_used;
print 'Name: ' . $row['name'] . '<br>';
print 'diskspace used: ' . format_size($disk_used) . '<br>';
print 'diskspace left: ' . format_size($disk_remaining) . '<br><hr>';
}
在脚本执行完成之前,为什么处理器使用率会过高或100%升高?可以做些什么来优化它吗?还是有其他方法可以检查文件夹和其中的文件夹大小?
以下是其他地方提供的其他解决方案:
如果在Windows主机上:
<?
$f = 'f:/www/docs';
$obj = new COM ( 'scripting.filesystemobject' );
if ( is_object ( $obj ) )
{
$ref = $obj->getfolder ( $f );
echo 'Directory: ' . $f . ' => Size: ' . $ref->size;
$obj = null;
}
else
{
echo 'can not create object';
}
?>
否则,如果在Linux主机上:
<?
$f = './path/directory';
$io = popen ( '/usr/bin/du -sk ' . $f, 'r' );
$size = fgets ( $io, 4096);
$size = substr ( $size, 0, strpos ( $size, "\t" ) );
pclose ( $io );
echo 'Directory: ' . $f . ' => Size: ' . $size;
?>
问题内容: 所以我有这个程序来处理CSV文件。我有一行代码来加载文件。 我想找到一种方法,可以在目录中查找并获取最新文件(它们都具有日期标签,因此它们在内部顺序)并将名称设置为。 我真的找不到并理解php目录的文档,因此也将不胜感激任何有用的资源。谢谢。 问题答案: 这是尝试使用, 假设 目录中只有文件带有 时间戳的文件名 : 我们首先以降序列出目录中的所有文件,然后以列表中最先出现的那个文件名具
问题内容: 我正在尝试获取目录的大小以及使用Swift在OS X上的内容。到目前为止,我只能获得目录本身的大小,而没有内容。对于我的大多数目录,它通常显示6148个字节的值,但它的确有所不同。 我已经尝试了下面文件中的directorySize()函数,但它也返回了6,148个字节。 https://github.com/amosavian/ExtDownloader/blob/2f7dba2ec
问题内容: 我正在尝试访问我的jar文件中的目录。我想浏览目录本身内的每个文件。例如,我尝试使用以下方法: 如果我测试此小程序,它将很好地工作。但是,一旦将内容物放入广口瓶中,并不是有几个原因。如果使用此代码,则URL始终指向jar外部,因此必须将目录放在此处。但是如果我使用的话,它不能在jar里面起作用,因为我得到了错误。我确定该目录存在于jar中。我应该如何获得罐子里的东西? 问题答案: Ja
问题内容: 我需要一种在Linux上运行的C ++程序中获取用户主目录的方法。如果相同的代码可以在Unix上运行,那就太好了。我不想使用HOME环境值。 AFAIK,根主目录是/ root。如果我的程序是由root用户运行的,可以在该目录中创建一些文件/文件夹吗? 问题答案: 您需要获取当前用户的用户ID,然后获取该用户的密码条目(包括主目录): 注意:如果您在线程化应用程序中需要此功能,则可以改
问题内容: 如何获取给定目录的所有子目录而没有文件(当前目录)或(父目录),然后使用函数中的每个目录? 问题答案: 您可以将glob()与选项一起使用 要么
问题内容: 只是一个简单的问题,如何获得指定目录内的目录列表。 例如, 现在,我需要获取“路径”目录中的目录列表。 谢谢! 问题答案: 诸如此类(添加null检查,异常等。)