Avatar billede thoeger_poertner Nybegynder
14. januar 2004 - 12:32 Der er 5 kommentarer og
2 løsninger

Liste over filer i følgende mapper, over en bestemt størrelse.

Hej!

Jeg leder efter en måde hvorpå jeg kan få en liste over filer i undermapper, med en  specificeret begrænsing:

* over xx antal megabytes
* som hedder .txt

Listen skal kunne udskrive:
* filnavn
* størrelse

Altså en liste fra et valgt directory, og alle filer der matcher de ovenstående kriterier, i alle undermapper fra den specificerede mappe.

Er der nogen der har en idé om hvorledes det kan laves?

På forhånd MANGE tak :)
Avatar billede mc_goblen Praktikant
14. januar 2004 - 12:44 #1
Du kan jo "uden" problemer lave det ved hjælp af DOS-kommandoen DIR
Avatar billede mc_goblen Praktikant
14. januar 2004 - 12:45 #2
Ahh sorry, havde ikke set hvilken kalgori spørgsmålet var stille i. - Beklager, så kan jeg ikke hjælpe...
Avatar billede fcknet Nybegynder
14. januar 2004 - 21:05 #3
<?
function tree ($level, $offset, $maxsize) {
    if (is_dir($offset)) {
        if ($dh = opendir($offset)) {
            while (($file = readdir($dh)) !== false) {
                $size = $maxsize*1024*1024;
                if (is_dir($offset."/".$file)) {
                    if ($file != "." && $file != "..") {
                        for ($i=0; $i<$level; $i++) { echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; }
                        echo "<img src='billeder/smallfolder.png'> <b><a target='right' href='$link/".takecare($file)."'>$file</a></b><br>";
                        tree($level+1, $offset."/".$file);
                    }
                } else {
                    if (substr($file, -3) == "txt" && filesize($file) > $size) {
                        for ($i=0; $i<$level; $i++) { echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; }
                        echo "$file<br>\n";
                    }
                }
            }
            closedir($dh);
        }
    }
}
tree(0, "./", 3);
?>

Funktionen skal bruges således:
tree(0, "startdir, denne mappe=./", "max size i MB");
Avatar billede fcknet Nybegynder
14. januar 2004 - 21:06 #4
Lille korrektion:

<?php
function tree ($level, $offset, $maxsize) {
    if (is_dir($offset)) {
        if ($dh = opendir($offset)) {
            while (($file = readdir($dh)) !== false) {
                $size = $maxsize*1024*1024;
                if (is_dir($offset."/".$file)) {
                    if ($file != "." && $file != "..") {
                        for ($i=0; $i<$level; $i++) { echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; }
                        echo "$file<br>";
                        tree($level+1, $offset."/".$file);
                    }
                } else {
                    if (substr($file, -3) == "txt" && filesize($file) > $size) {
                        for ($i=0; $i<$level; $i++) { echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; }
                        echo "$file<br>\n";
                    }
                }
            }
            closedir($dh);
        }
    }
}
tree(0, "./", 3);
?>
Avatar billede thoeger_poertner Nybegynder
15. januar 2004 - 00:56 #5
Hej, og mange tak for dit svar!

Jeg får desværre fejlen: "Warning: Missing argument 3 for tree() in /home/web/web4674/test.php on line 2"

Har du selv testet det hvor det virkede?
Avatar billede fcknet Nybegynder
15. januar 2004 - 06:56 #6
Prøv med følgenge kode:

<?php
function tree ($level, $offset, $maxsize) {
    if (is_dir($offset)) {
        if ($dh = opendir($offset)) {
            while (($file = readdir($dh)) !== false) {
                $size = $maxsize*1024*1024;
                if (is_dir($offset."/".$file)) {
                    if ($file != "." && $file != "..") {
                        for ($i=0; $i<$level; $i++) { echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; }
                        echo "$file<br>";
                        tree($level+1, $offset."/".$file, $maxsize);
                    }
                } else {
                    if (substr($file, -3) == "txt" && filesize($file) > $size) {
                        for ($i=0; $i<$level; $i++) { echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; }
                        echo "$file<br>\n";
                    }
                }
            }
            closedir($dh);
        }
    }
}
tree(0, "./", 3);
?>

Sorry. MIn fejl.... Havde lige glemt at skrive noget.... Prøv med den her
Avatar billede thoeger_poertner Nybegynder
23. marts 2004 - 19:11 #7
Beklager ventetiden.

Fcknet, jeg brugte din løsning.Tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester