Avatar billede mrkaynex Nybegynder
04. november 2009 - 16:49 Der er 6 kommentarer og
1 løsning

is_file / is_dir

Hejsa,

Jeg vil gerne have scriptet nedenfor til KUN at vise filer (dvs ingen mapper), men jeg vil også gerne lave et script der KUN viser mapper (dvs ingen filer) - men hvordan gøres dette, hvis det kan gøres?

Jeg har roddet lidt med is_file og is_dir, men jeg ved ikke om de kan bruges i scriptet, og hvis de kan, så hvor de skal sættes ind, for da jeg prøvede viste den hverken filer eller mapper. Lige nu viser den begge dele.

function list_files($dir)
{
  if(is_dir($dir))
  {
    if($handle = opendir($dir))
    {
      while(($file = readdir($handle)) !== false)
      {
        if($file != "." && $file != ".." && $file != "Thumbs.db"/*pesky windows, images..*/)
        {
          echo '<a target="_blank" href="'.$dir.$file.'">'.$file.'</a><br>'."\n";
        }
      }
      closedir($handle);
    }
  }
}

.. På forhånd, tak!
Avatar billede nissen2630 Novice
04. november 2009 - 17:59 #1
Dette skulle gøre det :

function list_files($dir)
{   
    if($handle = opendir($dir)) {
        while(($file = readdir($handle)) !== false) {
            if(!is_dir($file)) {
                echo '<a target="_blank" href="'.$dir.$file.'">'.$file.'</a><br>'."\n";
            }
        }
        closedir($handle);
    }
}
function list_dir($dir)
{   
    if($handle = opendir($dir)) {
        while(($file = readdir($handle)) !== false) {
            if(is_dir($file)) {
                echo '<a target="_blank" href="'.$dir.$file.'">'.$file.'</a><br>'."\n";
            }
        }
      closedir($handle);
    }
}

Avatar billede mrkaynex Nybegynder
04. november 2009 - 18:31 #2
Hej,

Umiddelbart virker ingen af dem. Den første viser ingenting, og den anden viser "." og ".."

Hvad der er forkert, ved jeg ikke..
Avatar billede mrkaynex Nybegynder
04. november 2009 - 18:59 #3
.. det var ikke meningen at sidste besked skulle have været et svar.
Avatar billede nissen2630 Novice
04. november 2009 - 19:12 #4
Sært.
Testede med

list_files('C:\temp');

Den virkede fino
Avatar billede showsource Seniormester
04. november 2009 - 20:06 #5
//Tak til detox, www.eksperten.dk/spm/599757, for hjælp med lidt opendir()

function visFiler($dir) {

    $d = dir($dir);
    while (false !== ($file = $d->read())) {
        if (is_file($dir ."/". $file)) {
            $out[] = $file;
        }     
    }
    $d->close();
    if(!empty($out)) {
    return $out;
    }
}

function visMapper($dir, &$out) {

    $d = dir($dir);
    while (false !== ($file = $d->read())) {
        if ($file != '.' && $file != '..') {
            if (is_dir($dir ."/". $file)) {
                $out[] = $dir ."/". $file;
                visMapper($dir ."/". $file, $out);
            }     
        }
    }
    $d->close();
}
Avatar billede mrkaynex Nybegynder
06. november 2009 - 10:18 #6
Jeg har valgt at bruge det der stod i en anden tråd, som showsource linkede til, da det har gjort mit arbejde meget nemmere, så hvis du kan smide et svar? :)
Avatar billede showsource Seniormester
07. november 2009 - 14:34 #7
øhhh, ok
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