09. marts 2004 - 19:15
Der er
19 kommentarer og 1 løsning
Tælle filer i en mappe, incl filerne i undermapperne
Hej exp, Hvordan kan man tælle filer fra en mappe, hvor man også skal tælle filerne i undermapperne med? Jakob Funsense.dk
Annonceindlæg fra Deloitte
09. marts 2004 - 19:40
#1
Fx: <? $dir = "sti/til/mappe"; // Sti og navn på mappe $c = 0; echo taelFiler($dir); function taelFiler($dir) { global $c; $d = dir($dir); while (false !== ($entry = $d->read())) { if ($entry != '.' && $entry != '..') { if (is_dir($dir."/".$entry)) taelFiler($dir."/".$entry); else $c++; } } $d->close(); return $c; } ?>
09. marts 2004 - 19:41
#2
Her er en rekursiv metode, der tæller alle filer i et mappehierarki: function traverse($dir_path) { $files = 0; $handle = opendir($dir_path); while (false !== ($file = readdir($handle))) { if (($file !== '.') && ($file !== '..') && is_dir($dir_path.'/'.$file)) { files += traverse($dir_path.'/'.$file); } else if (($file !== '.') && ($file !== '..')) { $files++; } } return $files; }
09. marts 2004 - 19:44
#3
Okay burde lige tilføje $handle->close(); før return $files;
11. marts 2004 - 17:35
#4
... Undskyld, jeg havde kort, glemt at jeg havde oprettet dette spg. Jeg kikker lige på dem, og melder tilbage. :P
11. marts 2004 - 17:39
#5
Detox: Jeg har fx. 10 mapper. Hvordan læser jeg i dem alle? Rasmusbg: Hvordan kan man sætte en url, et par niveauer oppe? ^o)
11. marts 2004 - 17:43
#6
Saudoo > Jeg er ikke helt sikker på, jeg forstår, hvad du mener.
11. marts 2004 - 18:00
#7
Den jeg har lavet tæller alle filerne i mappen samt undermapper.
11. marts 2004 - 22:23
#8
rasmusbg, nej det var også formuleret forkert. Hvordan sætter jeg en kilde. Eller en url, til den mappe den læser fra?
11. marts 2004 - 22:27
#9
<?php ... function traverse($dir_path) { $files = 0; $handle = opendir($dir_path); while (false !== ($file = readdir($handle))) { if (($file !== '.') && ($file !== '..') && is_dir($dir_path.'/'.$file)) { files += traverse($dir_path.'/'.$file); } else if (($file !== '.') && ($file !== '..')) { $files++; } } $handle->close(); return $files; } echo traverse('sti-til-mappe'); ?>
11. marts 2004 - 22:29
#10
Detox, Jeg skal bruge det på denne måde.. Billeder: [antal] Filmklip: [antal] osv. Hvordan skal jeg stille scriptet op, hvis dette skulle være muligt?
11. marts 2004 - 22:29
#11
også til dig rasmusbg :P
11. marts 2004 - 22:31
#12
Altså, for at tage det på det rene.. Jeg har sat et stykke tekst foran scriptet, men der skal være ca. 5 steder hvorfra den skal finde antal filer... ",
11. marts 2004 - 22:32
#13
<?php function traverse($dir_path) { $files = 0; $handle = opendir($dir_path); while (false !== ($file = readdir($handle))) { if (($file !== '.') && ($file !== '..') && is_dir($dir_path.'/'.$file)) { files += traverse($dir_path.'/'.$file); } else if (($file !== '.') && ($file !== '..')) { $files++; } } $handle->close(); return $files; } echo 'Billeder:['.traverse('sti-til-mappe-med-billeder').']<br>'; echo 'Filmklip:['.traverse('sti-til-mappe-med-filmklip').']'; ?>
11. marts 2004 - 22:33
#14
og for hver linie med antal filer tilføjer du bare en echo...
12. marts 2004 - 13:50
#15
rasmusbg, Det script du har givet mig, retunerer en blank side.
12. marts 2004 - 18:48
#16
Jeg fandt et par småfejl, og så skal det være stier til lokale mapper, du bruger, når du kalder funktionen. <?php function traverse($dir_path) { $files = 0; $handle = opendir($dir_path); while (false !== ($file = readdir($handle))) { if (($file !== '.') && ($file !== '..') && is_dir($dir_path.'/'.$file)) { $files += traverse($dir_path.'/'.$file); } else if (($file !== '.') && ($file !== '..')) { $files++; } } return $files; } echo 'Billeder:['.traverse('sti-til-billeder').']<br>'; echo 'Filmklip:['.traverse('sti-til-filmklip').']'; ?>
12. marts 2004 - 20:47
#17
Det er sq smukt. Smidt et svar.
12. marts 2004 - 20:49
#18
Svar :o)
13. marts 2004 - 23:49
#19
og tak for hjælpen.. :P
13. marts 2004 - 23:51
#20
Det var så lidt.
Vi tilbyder markedets bedste kurser inden for webudvikling