par
BeRoots » 25 juil. 2008, 12:22
Salut la compagnie
je suis en train de me fabriquer une classe de définition de la taille d'un dossier et de tous ce sous-dossiers...
J'ai fait ceci:
/**
* classe de definition de la taille d'un dossier et de touts ces sous-dossier
*
* @author Deschamps Sébastien <[email protected]>
* @copyright Deschamps Sébastien, all rights reserved.
* @version 1.0
* @name brts_size_this
* @package brts_pack
* @subpackage size_this
*/
// INSTANCE: $size_this = new brts_size_this();
// SIZE THIS: $size = $size_this->get_size($src);
// RESET: $reset = $size_this->reset_size();
// DESTRUCTEUR unset($size_this);
class brts_size_this
{
/**
* taille en octet de la source
*
* @access private
* @staticvar string
*/
private static $size;
/**
* definition des propriétés de la classe
*
* @name constructeur
* @access public
*/
public function __construct()
{
$this->size = 0;
}
/**
* effacement des propriétés de la classe
*
* @name destructeur
* @access public
*/
public function __destruct()
{
unset($this->size);
}
/**
* definition de la taille d'un dossier et de touts ces sous-dossier
*
* @name get_size
* @access public
* @param string $scr chemin vers le dossier
*/
public function get_size($src)
{
// on ouvre le dossier
$dir_handle = opendir($src);
while(($o = readdir($dir_handle)) !== FALSE)
{
if(($o != '.') and ($o != '..'))
{
if(is_dir($src.'/'.$o))
{
$this->size=$this->size + $this->get_size($src.'/'.$o);
}
else $this->size=$this->size+filesize($src.'/'.$o);
}
}
closedir($dir_handle);
return $this->size;
}
/**
* resmise à zero de size
*
* @name reset_size
* @access public
*/
public function reset_size($src)
{
// on remet à zero $this->size
$this->size = 0;
}
}
Mon soucis est que lors des test, je retourne une taille largement superieur à celle du dossier scané...
Si quelqu'un a une idée ?
Merci d'avance
Salut la compagnie :)
je suis en train de me fabriquer une classe de définition de la taille d'un dossier et de tous ce sous-dossiers...
J'ai fait ceci:
[php]/**
* classe de definition de la taille d'un dossier et de touts ces sous-dossier
*
* @author Deschamps Sébastien <
[email protected]>
* @copyright Deschamps Sébastien, all rights reserved.
* @version 1.0
* @name brts_size_this
* @package brts_pack
* @subpackage size_this
*/
// INSTANCE: $size_this = new brts_size_this();
// SIZE THIS: $size = $size_this->get_size($src);
// RESET: $reset = $size_this->reset_size();
// DESTRUCTEUR unset($size_this);
class brts_size_this
{
/**
* taille en octet de la source
*
* @access private
* @staticvar string
*/
private static $size;
/**
* definition des propriétés de la classe
*
* @name constructeur
* @access public
*/
public function __construct()
{
$this->size = 0;
}
/**
* effacement des propriétés de la classe
*
* @name destructeur
* @access public
*/
public function __destruct()
{
unset($this->size);
}
/**
* definition de la taille d'un dossier et de touts ces sous-dossier
*
* @name get_size
* @access public
* @param string $scr chemin vers le dossier
*/
public function get_size($src)
{
// on ouvre le dossier
$dir_handle = opendir($src);
while(($o = readdir($dir_handle)) !== FALSE)
{
if(($o != '.') and ($o != '..'))
{
if(is_dir($src.'/'.$o))
{
$this->size=$this->size + $this->get_size($src.'/'.$o);
}
else $this->size=$this->size+filesize($src.'/'.$o);
}
}
closedir($dir_handle);
return $this->size;
}
/**
* resmise à zero de size
*
* @name reset_size
* @access public
*/
public function reset_size($src)
{
// on remet à zero $this->size
$this->size = 0;
}
}
[/php]
Mon soucis est que lors des test, je retourne une taille largement superieur à celle du dossier scané...
Si quelqu'un a une idée ?
Merci d'avance