View Full Version : سوال: نحوه بدست آوردن حجم فایل های یک پوشه
Master_Power
جمعه 10 فروردین 1397, 20:06 عصر
سلام اساتید
یه سوال دارم لطف کنید و پاسخ بدید
تشکر
من روی سیستم هر بار یکسری فایل zip توی یک پوشه میریزم و میخوام مقدار حجم اون فایل های توی پوشه را هربار با همدیگه بدست بیارم و کپی کنم به صورت زیر
22.4mb
45mb
2.1mb
78mb
فقط میخوام به همین صورت حجم فایل ها چاپ بشه و آخرشون هم mb بیاد
تمام فایل ها با فرمت Zip هستن و هر سری نام فایل ها فرق میکنه
بازم میگم فقط میخوام حجم فایل ها چاپ بشه ولی به ترتیبی که فایل ها توی پوشه هست
تشکر میکنم اگر کدشو بدید
Master_Power
دوشنبه 13 فروردین 1397, 10:28 صبح
UP . . . .
SlowCode
دوشنبه 13 فروردین 1397, 15:22 عصر
اینجور چیزا رو تو گوگل سرچ کنین خیلی زود به جواب میرسین.
<?php
function folderSize ($dir)
{
$size = 0;
foreach (glob(rtrim($dir, '/').'/*', GLOB_NOSORT) as $each) {
$size += is_file($each) ? filesize($each) : folderSize($each);
}
return $size;
}
function formatSizeUnits($bytes)
{
if ($bytes >= 1073741824)
$bytes = number_format($bytes / 1073741824, 2) . ' GB';
elseif ($bytes >= 1048576)
$bytes = number_format($bytes / 1048576, 2) . ' MB';
elseif ($bytes >= 1024)
$bytes = number_format($bytes / 1024, 2) . ' KB';
elseif ($bytes > 1)
$bytes = $bytes . ' bytes';
elseif ($bytes == 1)
$bytes = $bytes . ' byte';
else
$bytes = '0 bytes';
return $bytes;
}
echo formatSizeUnits(folderSize("folder_name"));
Master_Power
سه شنبه 14 فروردین 1397, 03:13 صبح
تشکر
ولی من هرکاری میکنم میزنه 0 byte
تغییر خاصی باید توی کد ها بدم ؟
فایل را هم توی پوشه و هم بیرون پوشه میزارم جواب نمیده
Master_Power
سه شنبه 14 فروردین 1397, 03:18 صبح
الان تست کردم فقط حجم پوشه را میده
من میخوام حجم فایل های داخل پوشه را بده
باید چیکار کنم ؟
Farshid007
پنج شنبه 16 فروردین 1397, 13:19 عصر
function get_filesize_folder($folder_path)
{
$files=array();
$dirs=scandir($folder_path);
foreach($dirs as $key=>$dir)
{
if($dir=="."||$dir==".."){ continue;}
$size=filesize($folder_path.'/'.$dir);
$files[$dir]=number_format(($size/1024)/1024,2);
}
return $files;
}
این تابع که نوشتم آدرس یک پوشه را میگیره و ارایه ای بر میگردونه که اندیسش اسم فایل هست و مقدارش سایز فایل با فرمت مگابایت
یک نمونه خودم تست کردم :
print_r(get_filesize_folder('tmp'));
برگردوند:
Array
(
[Bebegim [128].mp3] => 4.37
[Mohsen Ebrahimzadeh - Mishi Fadash (320) (Iromusic).mp3] => 7.19
[Soroush Hichkas Feat Reza Pishro Feat Dj Mavi - Bazam Kalan - DJ Mavi Club Mix (320) (Iromusic).mp3] => 9.21
)
فقط نکته اش اینجاست که اگه فولدر تو فولدر بشه اون ساب فولدرو نمیگیره :)
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.