Taille d'un dossier sur le réseau

Taille d'un dossier sur le réseau - PHP - Programmation

Marsh Posté le 10-03-2006 à 11:56:48    

Bonjour,  
 
voila j'essaye par un script d'avoir la taille d'un dossier. Après divers essai j'ai trouvé un bout de code qui execute ce que je souhaite. le seul problème c'est que lorsque il s'agit d'un dossier sur mon disque local cela fonctionne très bien mais dès que j'accède à un dossier sur un lecteur réseau j'ai systématiquement une taille de 0 o.  
je met le code que j'utilise. Si qqn à une idée elle est la bienvenue  
merci d'avance.  

Code :
  1. <?
  2. function taille_dossier($rep){
  3. $racine=@opendir($rep);
  4. $taille=0;
  5. while($dossier=@readdir($racine)){
  6.  if(!in_array($dossier, Array("..", "." ))){
  7.   if(is_dir("$rep/$dossier" )){
  8.    $taille+=taille_dossier("$rep/$dossier" );
  9.   }
  10.   else{
  11.    $taille+=@filesize("$rep/$dossier" );
  12.   }
  13.  }
  14. }
  15. @closedir($racine);
  16. return $taille;
  17. }
  18. function convertir($taille){
  19. if($taille<1024){
  20.  $taille.=" o";
  21. }
  22. else{
  23.  if($taille<1024*1024){
  24.   $taille=number_format($taille/1024, 2);
  25.   $taille.=" Ko";
  26.  }
  27.  else{
  28.   if($taille<1024*1024*1024){
  29.    $taille=number_format($taille/(1024*1024), 2);
  30.    $taille.=" Mo";
  31.   }
  32.   else{
  33.    if($taille<1024*1024*1024*1024){
  34.     $taille=number_format($taille/(1024*1024*1024), 2);
  35.     $taille.=" Go";
  36.    }
  37.   }
  38.  }
  39. }
  40. return $taille;
  41. }
  42. echo convertir(taille_dossier("t:\auguste" ));
  43. ?>

Reply

Marsh Posté le 10-03-2006 à 11:56:48   

Reply

Marsh Posté le 10-03-2006 à 12:33:27    

Enléve les @, comme ça, tu véras s'il y a des erreurs. Je suis sur que c'est du à une erreur caché par un des @.

Reply

Marsh Posté le 10-03-2006 à 13:54:59    

omega2 a écrit :

Enléve les @, comme ça, tu véras s'il y a des erreurs. Je suis sur que c'est du à une erreur caché par un des @.


Salut,
 
je ne pense pas que ce soit, tous simplement parceque lorsque j'execute ce script sur un repertoire que j'ai en local cela fonctionne très bien
pour info voici les erreurs retourné en enlevant les @
 

Warning: opendir(T:\auguste): failed to open dir: Invalid argument in c:\program files\easyphp1-8\www\visr06\1.php3 on line 3
 
Warning: readdir(): supplied argument is not a valid Directory resource in c:\program files\easyphp1-8\www\visr06\1.php3 on line 5
 
Warning: closedir(): supplied argument is not a valid Directory resource in c:\program files\easyphp1-8\www\visr06\1.php3 on line 15
0 o


Je pense plus à un probleme avec l'utilisation de opendir sur un lecteur réseau mais je ne trouve pas beaucoup d'info la dessus sur le net.

Reply

Marsh Posté le 10-03-2006 à 14:28:55    

Avec certains windows, il existe un droits spécifique permettant l'accés et l'utilisation des lecteurs réseaux. Du coup, il faut que le serveur web soit lancé dans une session d'un utilisateur disposant de ce droit. j'avais découvert ça à cause d'un serveur msSQL qui avait créé un utilisateur rien qu'à lui à l'installation, utilisateur qui ne disposait pas de ce privilége.
 
Ca peut être une piste à envisagé.
 
En attendant, maintenant que les messages d'erreurs s'affichent, on voit bien que c'était du à un probléme d'accés à ce dossier et pas une erreur de récupération de la taille de chaque fichier.

Reply

Marsh Posté le 10-03-2006 à 14:36:31    

et en donnant le vrai lien vers le fichier plutot qu'un point d'entrée par lecteur reseau...
 
un truc du style opendir('\\nomduserveur\arborescence\august')


---------------
MZP est de retour
Reply

Marsh Posté le 10-03-2006 à 14:44:36    

salut,
 
ca marche pô non plus. j'ai l'impression qu'a partir du moment ou je ne suis pas sur le même serveur ca marche pas. pourtant j'ai tous les droits d'accès.
ca me saoul ca fait des jours que je cherche et rien. peut-être connaissez vous un autre moyen de faire ce que je souhaite.
Je veux avoir tous les jours une liste de tous les dossiers se trouvant sous un dossier racine et la taille de tous ces dossiers, je dois ensuite renvoyer tous ca dans un fichier excel pour faire des graphs...
alors si vous avez une idées même si je dois passer par d'autre technologies je suis preneur parceque je sent que je vais exploser.
 
Merci à tous pour votre aide

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed