webForumDet fria alternativet

Räkna underkataloger?

2 svar · 312 visningar · startad av soocks

soocksMedlem sedan feb. 200240 inlägg
#1

Hur gör jag för att räkna hur många underkataloger det finns i en bestämd katalog?

MatteMedlem sedan aug. 20002 975 inlägg
#2
$dir = 'bilder';

$count = 0;

if ($handle = opendir($dir)) { 
   while (false !== ($file = readdir($handle))) { 
       if ($file != "." && $file != ".." && is_dir($dir.'/'.$file)) { 
           $count++; 
       } 
   } 
   closedir($handle); 
} 

echo "Katalogen $dir innehåller $count st underkataloger";
bohlinMedlem sedan mars 2000263 inlägg
#3

Nått sånt här kanske:


echo "Antal subfolders: " . countSubFolder("c:\\windows\\");

function countSubFolders($dir)
{
    $subfolders = 0;
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            if (is_dir($dir . $file) && $file != "." && $file != "..")
                $subfolders++; 
         }
        closedir($dh);
    }

    return $subfolders;
}

Edit: inte många sekunder efter... ;)

Edit 2:
Om man även vill ha med undermapparnas undermappar blir det en rekursiv funktion:


echo "Antal subfolders: " . countSubFolder("c:/windows/");

function countSubFolders($dir)
{
    $subfolders = 0;
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            if (is_dir($dir . $file) && $file != "." && $file != "..") {
                    $subfolders++; 
                    $subfolders += countSubFolders($dir . $file . "/");
            }
         }
        closedir($dh);
    }

    return $subfolders;
}

Koden är otestad, så det är inte säkert att den funkar.

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)