webForumDet fria alternativet

lista .txt filer

2 svar · 411 visningar · startad av mr.mainline

mr.mainlineMedlem sedan feb. 2003777 inlägg
#1

Har lite frågor om hur jag ska gå till väga.

1.jag har en mapp där det skapas .txt filer, och vill kunna lista dessa.

2.sen vill jag kunna ta bort vissa hur gör jag det?

jeliassonMedlem sedan sep. 200522 inlägg
#2

Du kan ju fula dig med att typ köra typ

shell_exec('ls -l | grep .txt');

Sedan kan du ju fortsätta med att köra lite cut för att endast få ut namnet osv. Detta exempel förusätter att du har Linux.

Finns säkert mycket bättre exempel men jag har aldrig gjort något liknande innan.

EDIT: För att ta bort en fil kör du unlink().

mmmMangeMedlem sedan jan. 2005110 inlägg
#3

Har en gammal hemmasnickrad funktion som har fungerat bra för mig.

function EnumFiles($Dir, $CallbackFunctionName, $Extensions = array(), $Recursive = False){
  $DirHandle  = opendir($Dir);

  while ( ($Filename = readdir($DirHandle)) !== False ) {
      if( ($Filename == '.') or ($Filename == '..') )
          continue;

      $Filename = $Dir . '/' . $Filename;

      // Callback if filename ends with $Extension (if $Extension is specified)
      $pathinfo = pathinfo( $Filename );
      if( is_file($Filename) and (empty($Extensions) or in_array(strtolower($pathinfo['extension']), $Extensions)) ){
          if (call_user_func($CallbackFunctionName, $Filename) === False)
              return False;
      }

      // Enum subfolder if $Recursive is True
      if( is_dir($Filename) and $Recursive){
          if( EnumFiles($Filename, $CallbackFunctionName, $Extensions, $Recursive) === False)
              return False;
      }
  }

  closedir($DirHandle);
}

$Dir är alltså sökvägen till katalogen.
$CallbackFunctionName är namnet på den funktion som ska köras för varje hittad fil.
$Extensions är en array med filändelser.
$Recursive bestämmer ifall sökningen ska ske rekursivt, dvs i alla underkataloger också.

Ett exempel kan behövas:

function printfilename( $filename ){
    print $filename . '<br>';
    return True;
}

EnumFiles( './images', 'printfilename', array('jpg', 'gif'), False );

Som du ser ska "callbackfunktionen" ta ett enda argument, nämligen filnamnet. Funktionen kan returnera antingen True eller False. Returnerar den True så fortsätter sökningen, returnerar den False avbryts sökningen. Alltså är det mycket viktigt att du returnerar True (om du inte vill avbryta sökningen förstås).

  1. unlink() - http://se2.php.net/manual/en/function.unlink.php
131 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)