Top > Perlあれこれ > 階層のあるディレクトリを走査
Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 
 
 
 
 
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
!
|
|
!
 
 
 
 
 
 
use File::Basename;
 
# entry : サーチするディレクトリ
# depth : 階層の深さ(tabインテンドの表示数)
sub my_walk
{
  my $entry = $_[0];
  my $depth = $_[1];
 
  my $type  = "";
 
  $type = "(d)" if (-d $entry);
  $type = "(s)" if (-l $entry);
 
  print "|\t" x $depth, "+---->", basename($entry), $type, "\n";
 
  return if (! -d $entry) || (-l $entry);
 
  opendir(DIR, $entry);
  my @list = sort readdir(DIR);
 
  foreach my $name (@list)
  {
    next if $name eq '.' || $name eq '..';
 
    my_walk("${entry}/${name}", $depth+1);
  }
 
  closedir(DIR);
}
 
$entry = $ARGV[0];
$depth = $ARGV[1];
 
my_walk($entry, $depth);

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