Visualizzazione dei risultati da 1 a 5 su 5

Discussione: peso totale directory

  1. #1
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    121

    peso totale directory

    ho scritto questo script che legge i files contuti nella directory e dà il peso totale dei mega:

    <?php

    $dir = "./files/";
    $d = dir($dir);
    $tot=0;

    if ($handle = opendir($dir)) {
    while (false !== ($file = readdir($handle))) {

    if ($file != "." && $file != "..") {
    $peso=round(((filesize($dir."/".$file)/1024)/1024),3);
    $data=date("d/m/Y H:i", (filemtime($dir."/".$file)));
    $ext=substr($file, -3);
    $tot+=$peso;
    echo"nome:$file data:$data mb:$peso
    ";
    if (is_dir($dir."/".$file)){echo"c'è una sub_directory
    ";}
    }
    }
    closedir($handle);
    }
    echo"totale=$tot";
    ?>

    e funzia ,ora vorrei che funzionasse anche nel caso di sottocartelle e facessa la somma totale, mi sto incasinandoie non arrivo, qualcuno può aiutarmi?

    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    6
    dovresti fare una funzione ricorsiva, Quando trova una sottocartella della cartella corrente si autorichiama.

  3. #3
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    121
    Originariamente inviato da kurjak
    dovresti fare una funzione ricorsiva, Quando trova una sottocartella della cartella corrente si autorichiama.
    è quello che sto cercando di fare ma non ci riesco

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    6
    codice:
    <?php
    
    $dir = ".";
    $d = dir($dir);
    $tot=0;
    
    function pesofile($dir, &$tot){
      if ($handle = opendir($dir)) {
        while (false !== ($file = readdir($handle))) {
          if ($file != "." && $file != "..") {
            $peso=round(((filesize($dir."/".$file)/1024)/1024),3);
            $tot+=$peso;
            echo $file." ".$tot."
    ";
            if (is_dir($dir."/".$file))
            {
               pesofile($dir."/".$file,$tot);
            }
          }
        }
        closedir($handle);
      }
    }
    pesofile($dir,$tot);
    ?>
    prova con questo, mi sembra che funziona

  5. #5
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    121
    sembra funzionare, grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.