Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1292 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Taille d'un dossier sur le réseau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Taille d'un dossier sur le réseau

n°1322632
garg@mel
Posté le 10-03-2006 à 11:56:48  profilanswer
 

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. ?>

mood
Publicité
Posté le 10-03-2006 à 11:56:48  profilanswer
 

n°1322682
omega2
Posté le 10-03-2006 à 12:33:27  profilanswer
 

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 @.

n°1322741
garg@mel
Posté le 10-03-2006 à 13:54:59  profilanswer
 

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.

n°1322778
omega2
Posté le 10-03-2006 à 14:28:55  profilanswer
 

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.

n°1322780
cinocks
Posté le 10-03-2006 à 14:36:31  profilanswer
 

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
n°1322786
garg@mel
Posté le 10-03-2006 à 14:44:36  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Taille d'un dossier sur le réseau

 

Sujets relatifs
[réseau / Delphi] analyser traffic HTTP || gestion des evenementsouvrir un dossier depuis un intranet
comment augmenter la taille du heap ?[javascript] Impossible de réduire la taille d'un popup
Probleme avec Coppermine (dossier auquel je n'est plus acces...)Taille d'un bloc (pour prendre la hauteur de tte la page ?
FCKeditor 2.2 upload problème de dossierUpload: variable du dossier de destination [RESOLU]
Effacement d'un fichier qui a une certaine tailleProblème avec MS-DOS et mon raccourci reseau
Plus de sujets relatifs à : Taille d'un dossier sur le réseau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR