Top > PHPあれこれ > 階層のあるディレクトリを走査

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
<?php
 
function my_walk( $dir, $depth ) {
    
    if( $handle = opendir( $dir ) ) {
 
        while ( false !== $file = readdir( $handle ) ) {
 
            if( $file != "." && $file != ".." ) {
 
                $path = $dir."/".$file;
                
                if( is_file( $path ) ) {
                    echo str_repeat("\t", $depth).$path."\n";
                } elseif( is_dir( $path ) )  {
                    echo str_repeat("\t", $depth).$path."/\n";
                    my_walk( $path, $depth + 1 );
                }
            }
        }
        closedir( $handle );
    }
}
 
my_walk("C:\\usr\\local\\share", 0);
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
<?php
 
function my_walk($dir, $depth) {
  foreach (new DirectoryIterator($dir) as $file) {
    if (! $file->isDot()) {
      $path = $dir .'/' . $file->getFilename();
      if($file->isDir()) {
        echo str_repeat("\t", $depth) . $path . '/' . PHP_EOL;
        my_walk($dir . '/' . $file->getFilename(), $depth + 1);
      }
      else {
        echo str_repeat("\t", $depth) . $path . PHP_EOL;
      }
    }
  }
}
 
my_walk("./", 0);

リロード   新規 編集 凍結解除 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2012-08-08 (水) 23:25:22 (2925d)