ディレクトリを再帰的にたどりファイル一覧を取得する その2 File::Find - Perl

この記事は2006年10月07日に書かれたものです。

今回は、PerlのFile::Findモジュールを利用した方法を解説する。File::FindモジュールはPerlに標準で入っているため、通常はインストールの作業などはいらない。

サンプル

;#
;#ファイル表示
;#
 
use File::Find;
 
#-- ディレクトリを指定(複数の指定可能) --#
@directories_to_search = ('./');
 
#-- 実行 --#
find(\&wanted, @directories_to_search);
 
 
#--------------------------------------------
#ファイルが見つかる度に呼び出される
#--------------------------------------------
sub wanted{
  print $File::Find::dir, '/';    #カレントディレクトリ
  print $_;          #ファイル名
  print "\n";
 
  #フルパスのファイル名
  #print $File::Find::name, "\n";
}

実行結果

./.
./index.cgi
./define.pm
./dbdocs
./js
./js/index.js
./note
./note/index.cg
./note/add.cgi
./note/view.cgi
./note/del.cgi
./css
./css/view.css

File::Filndモジュールは、この他にハッシュ(連想配列)に実行結果を入れることができるなど、オプションも充実している。詳しくはドキュメントを読まれたい。

FileFind - Traverse a directory tree.
http://search.cpan.org/~nwclark/perl-5.8.7/lib/File/Find.pm

関連書籍

コメント

コメントを入力. Wiki文法が有効です:
C B D O D