Дир
6 отговора
533 прегледа
Дир
Може ли някой да ми даде функция или нещо подобно което да показва големината на дадена директория. Например: Папката httpd на Apache. Благодаря
Re: Дир
Това може би ще ти свърши работа:
<?php
function DirStat($directory) {
global $FolderCount, $FileCount, $FolderSize;
chdir($directory);
$directory = getcwd();
$open = opendir($directory);
if($open) {
while($file = readdir($open)){
if($file == ".." || $file == ".") continue;
if(is file($file)) {
$FileCount++;
$FolderSize += filesize($file);
}elseif(is dir($file)){
$FolderCount++;
}
}
if($FolderCount > 0) {
$open2 = opendir($directory);
while($folders = readdir($open2)) {
$folder = $directory."/".$folders;
if($folders == ".." || $folders == ".") continue;
if(is dir($folder)) {
echo DirStat($folder);
}
}
closedir($open2);
}
closedir($open);
}
}
function ByteSize($bytes){
$size = $bytes / 1024;
if($size < 1024){
$size = number format($size, 2);
$size .= "kb";
} else {
if($size / 1024 < 1024) {
$size = number format($size / 1024, 2);
$size .= "mb";
} else {
$size = number format($size / 1024 / 1024, 2);
$size .= "gb";
}
}
return $size;
}
$dir = getcwd();
DirStat($dir);
chdir($dir);
$FolderSize = ByteSize($FolderSize);
echo $FileCount;
echo "</p>\n";
echo $FolderSize;
?>
Re: Дир
Имаше синтактични грешки. Ето:
Изход:
Dir: C:/Windows
Files: 10922
Size: 1.75gb
Което ми напомня да си разчистя малко Windows директорията.
Има три вида хора. Част от проблема, част от решението и част от пейзажа.
<?php
function DirStat($directory) {
global $FolderCount, $FileCount, $FolderSize;
chdir($directory);
$directory = getcwd();
$open = opendir($directory);
if($open) {
while($file = readdir($open)){
if($file == ".." || $file == ".") continue;
if(is_file($file)) {
$FileCount++;
$FolderSize += filesize($file);
}elseif(is_dir($file)){
$FolderCount++;
}
}
if($FolderCount > 0) {
$open2 = opendir($directory);
while($folders = readdir($open2)) {
$folder = $directory."/".$folders;
if($folders == ".." || $folders == ".") continue;
if(is_dir($folder)) {
echo DirStat($folder);
}
}
closedir($open2);
}
closedir($open);
}
}
function ByteSize($bytes){
$size = $bytes / 1024;
if($size < 1024){
$size = number_format($size, 2);
$size .= "kb";
} else {
if($size / 1024 < 1024) {
$size = number_format($size / 1024, 2);
$size .= "mb";
} else {
$size = number_format($size / 1024 / 1024, 2);
$size .= "gb";
}
}
return $size;
}
$dir = "C:/Windows";
DirStat($dir);
chdir($dir);
$FolderSize = ByteSize($FolderSize);
echo "Dir: ".$dir."
";
echo "Files: ".$FileCount."
";
echo "Size: ".$FolderSize;
?>
Изход:
Dir: C:/Windows
Files: 10922
Size: 1.75gb
Което ми напомня да си разчистя малко Windows директорията.
Има три вида хора. Част от проблема, част от решението и част от пейзажа.
Re: Само още един въпрос...
от кода на Учещ.
Как ще стане ако например в дадената директория има повече от 1МБ фаилове и искам да ми показва съобщение с това?
Как ще стане ако например в дадената директория има повече от 1МБ фаилове и искам да ми показва съобщение с това?