allow to display size of directories (disabled by default)
This commit is contained in:
parent
f07c407deb
commit
a2c2828473
|
@ -126,7 +126,7 @@ if ($actextract) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Creation de la liste des fichiers courants */
|
/* Creation de la liste des fichiers courants */
|
||||||
$c=$bro->filelist($R);
|
$c=$bro->filelist($R, $_REQUEST['showdirsize']);
|
||||||
if ($c===false) $error=$err->errstr();
|
if ($c===false) $error=$err->errstr();
|
||||||
|
|
||||||
include("head.php");
|
include("head.php");
|
||||||
|
@ -498,6 +498,7 @@ else {
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
echo '<a href="bro_main.php?R=' . $R . '&showdirsize=1">' . _("Show disk usage of directories (slow)") . '</a><br /><br />';
|
||||||
|
|
||||||
if ($id=$ftp->is_ftp($R)) {
|
if ($id=$ftp->is_ftp($R)) {
|
||||||
echo _("There is an ftp account in this folder")." <a href=\"ftp_edit.php?id=".urlencode($id)."\">"._("Click here to edit this ftp account.")."</a><br />";
|
echo _("There is an ftp account in this folder")." <a href=\"ftp_edit.php?id=".urlencode($id)."\">"._("Click here to edit this ftp account.")."</a><br />";
|
||||||
|
|
|
@ -158,14 +158,14 @@ class m_bro {
|
||||||
* membre courant
|
* membre courant
|
||||||
* @return array le tableau contenant les fichiers de $dir, et
|
* @return array le tableau contenant les fichiers de $dir, et
|
||||||
*/
|
*/
|
||||||
function filelist($dir="") {
|
function filelist($dir="", $showdirsize = false) {
|
||||||
global $db,$cuid;
|
global $db,$cuid;
|
||||||
$db->query("UPDATE browser SET lastdir='$dir' WHERE uid='$cuid';");
|
$db->query("UPDATE browser SET lastdir='$dir' WHERE uid='$cuid';");
|
||||||
$absolute=$this->convertabsolute($dir,0);
|
$absolute=$this->convertabsolute($dir,0);
|
||||||
if ($dir = @opendir($absolute)) {
|
if ($dir = @opendir($absolute)) {
|
||||||
while (($file = readdir($dir)) !== false) {
|
while (($file = readdir($dir)) !== false) {
|
||||||
if ($file!="." && $file!="..") {
|
if ($file!="." && $file!="..") {
|
||||||
$c[]=array("name"=>$file, "size"=>$this->fsize($absolute."/".$file), "date"=>filemtime($absolute."/".$file), "type"=> (!is_dir($absolute."/".$file)) );
|
$c[]=array("name"=>$file, "size"=>$this->fsize($absolute."/".$file, $showdirsize), "date"=>filemtime($absolute."/".$file), "type"=> (!is_dir($absolute."/".$file)) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
closedir($dir);
|
closedir($dir);
|
||||||
|
@ -276,19 +276,50 @@ class m_bro {
|
||||||
/* ----------------------------------------------------------------- */
|
/* ----------------------------------------------------------------- */
|
||||||
/** Retourne la taille du fichier $file
|
/** Retourne la taille du fichier $file
|
||||||
* si $file est un dossier, retourne la taille de ce dossier et de tous
|
* si $file est un dossier, retourne la taille de ce dossier et de tous
|
||||||
* ses sous dossiers.
|
* ses sous dossiers (mais seulement si l'utilisateur en a fait la demande).
|
||||||
* @param string $file Fichier dont on souhaite connaitre la taille
|
* @param string $file Fichier dont on souhaite connaitre la taille
|
||||||
* @return integer Taille du fichier en octets.
|
* @return integer Taille du fichier en octets.
|
||||||
* TODO : create a du cache ...
|
* TODO : create a du cache ...
|
||||||
*/
|
*/
|
||||||
function fsize($file) {
|
function fsize($file, $showdirsize = false) {
|
||||||
if (is_dir($file)) {
|
if (is_dir($file)) {
|
||||||
|
if ($showdirsize) {
|
||||||
|
return $this->dirsize($file);
|
||||||
|
} else {
|
||||||
return "-";
|
return "-";
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return filesize($file);
|
return filesize($file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------- */
|
||||||
|
/** Retourne la taille du repertoire $dir (fonction recursive)
|
||||||
|
* @param string $dir Repertoire dont on souhaite connaitre la taille
|
||||||
|
* @return integer Taille du repertoire en octets.
|
||||||
|
*/
|
||||||
|
function dirsize($dir) {
|
||||||
|
$totalsize = 0;
|
||||||
|
|
||||||
|
if ($handle = opendir($dir)) {
|
||||||
|
while (false !== ($file = readdir($handle))) {
|
||||||
|
$nextpath = $dir . '/' . $file;
|
||||||
|
|
||||||
|
if ($file != '.' && $file != '..' && !is_link($nextpath)) {
|
||||||
|
if (is_dir($nextpath)) {
|
||||||
|
$totalsize += $this->dirsize($nextpath);
|
||||||
|
} elseif (is_file ($nextpath)) {
|
||||||
|
$totalsize += filesize($nextpath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
closedir($handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $totalsize;
|
||||||
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------- */
|
/* ----------------------------------------------------------------- */
|
||||||
/** Crée le dossier $file dans le dossier (parent) $dir
|
/** Crée le dossier $file dans le dossier (parent) $dir
|
||||||
* @param string $dir dossier dans lequel on veut créer un sous-dossier
|
* @param string $dir dossier dans lequel on veut créer un sous-dossier
|
||||||
|
|
Loading…
Reference in New Issue