• ベストアンサー

Perlで指定のディレクトリ以下のファイル名を全て表示させるスクリプト

Perlで指定のディレクトリ以下のファイル名を全て表示させるスクリプトを考えておりますが、思いつきません。WindowsとLinuxの両方で利用たいです。 何かよいサンプルはありませんか? よろしくお願いします。

  • Perl
  • 回答数2
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • masaboo
  • ベストアンサー率58% (7/12)
回答No.2

指定ディレクトリ以下を再帰的に処理するならこんなのは どうでしょう sub dirtree {   my $path = shift;   opendir(DIR, $path);   my @dirs = grep !/^\.\.*$/, readdir(DIR);   closedir(DIR);   for(my $i=0; $i<@dirs; $i++){     my $fullname = $path . '/' . $dirs[$i];     if(-d $fullname){       $dirs[$i] = ' ' . $fullname; # ソート用にディレクトリを' 'でマーク     }else{       $dirs[$i] = $fullname;     }   }   for my $fullname (sort @dirs){     if($fullname =~ s/^ //){       dirtree($fullname);     }else{       #******************************       # ここに目的の処理を記述       #******************************       if($fullname =~ /\.html$/){         print "$fullname\n";       }     }   } }

その他の回答 (1)

noname#25358
noname#25358
回答No.1

sub printDir {  opendir(DIR, $_[0]);  @files = readdir(DIR);  close(DIR);  foreach(@files) {   if ( $_ eq '.' || $_ eq '..' ) { next; }   print "$_[0]/$_\n";   if ( -d $_ ) {    printDir( "$_[0]/$_" );   } }  こんな感じでどうでしょ。

関連するQ&A

  • ディレクトリ以下のファイル名を取得する

    ディレクトリ名を指定するだけで、 そのディレクトリ内にある全てのデータファイルを 読み込んで処理するプログラムをC++で作ろうと考えています。 その為に、ディレクトリ以下のファイルのファイル名を 取得する方法(命令)を教えて頂きたく思います。 よろしくお願いします。

  • 指定したディレクトリ以下のファイルリストを作りたい

    指定したディレクトリ以下にあるディレクトリのファイルのリストを、インターネットのホームページのようにメニューのようにしたいのですがどうすればよいでしょうか? 可能であればCDに焼いた時に指定したファイル名をクリックすれば開くようにしたいです。

  • Rubyで特定のディレクトリ以下のファイル名をすべて表示するプログラム

    Rubyで特定のディレクトリ以下のファイル名をすべて表示するプログラムを書きたいのですが方法がわかりません。 どういうメソッドを使えばよいでしょうか?

    • ベストアンサー
    • CGI
  • ファイルが更新されたら指定されたことを行うスクリプト

    指定されたファイル(特定のディレクトリ内の全ファイルとか)を監視して、 それが更新されたら、予め指定しておいたコマンド等を行うという スクリプトを書きたいと思っているのですが、 PHPで書くことは可能でしょうか? 可能ならば、どういった関数を使えばいいか、ヒントをいただけないでしょうか。 検索してもPerlばかりがヒットして困っています。

    • ベストアンサー
    • PHP
  • Perl で ディレクトリ及びサブディレクトリの容量を取得したい

    Perlについて質問します。 Perlで特定のディレクトリ及び、サブディレクトリ全てのファイルの容量を取得する方法についてです。 opendir、readdir関数を使用し指定した階層の合計が表示できたが、それより1つ下の、サブディレクトリはファイルを読み込めませんでした。 どうすればサブディレクトリのファイルも読み込んでもらえるでしょうか。 よろしくお願いします。

  • perlを使ったファイルの入出力について

    perl 初心者です。 perl を使ってデータ整理を試みていますが、方法がわからなくて困っています。 やりたい操作は、 1、ディレクトリ内にある特定の拡張子をもつすべてのデータファイルを読み込む 2、データソート 3、データファイル名を変更せずに、ソートしたデータを出力する 例 ディレクトリに以下のデータファイルがあるとします aaa.data bbb.data ccc.data : zzz.data これらのデータファイルをすべて読み込み、中身を整理した後に aaa.txt bbb.txt ccc.txt : zzz.txt となるように、それぞれのデータの名前を変更せずに出力したいと思っています。 スクリプトのサンプルなんかがあればありがたいです。

    • ベストアンサー
    • Perl
  • 古いファイルを含むディレクトリのリネーム

    古いファイルを含むディレクトリのリネーム Linuxサーバのファイル整理の目的で 指定ディレクトリ以下の階層の複数フォルダについて 古い画像ファイル(90日以上変更がない".jpg"ファイル)しかないものは (1)ディレクトリ名をリネーム(ディレクレトリ名末尾に"_deleted"を追加) (2)ディレクトリ内の古いファイルを削除 したいと考えております。 find と xargs をつなげてあげれば、(2)単体であればできるのですが ex.) find . -type f -ctime +90 -print0 | xargs -0 rm 「格納されている全てのファイルが対象となる場合」に「ディレクトリ名をリネームして」 という処理で悩んでおります。 皆様、アドバイスの程お願い致します。 ========================================== 環境: ========================================== OS: CentOS5.4 bashなどを利用して,簡易的に実行できればと考えております。

  • ディレクトリ以下のファイル・フォルダをすべて取得

    あるディレクトリ以下のファイルをすべてListViewやListBoxに表示させるものを作成したいのですが、どうすればよいのでしょうか? VisualBasic2008を使っております。

  • 「Perlスクリプトを使ってCD→特定のDirectoryにコピー」する方法

    LINUX環境で CDに入っている「Perlスクリプト(AA.pl」を実行すると、CDに入っている他のDirectory構造(DirA)を丸ごと指定したDirectory(DirB)にコピーすることは可能でしょうか。インストーラみたいなものを作ろうと思いますがその方法が分かる方教えてください。 つまり、 (1)CD-ROMのAA.pl実行 (2)CD-ROM/DirA (3)/home/usr/userA/DirBにDirAをCopy したいです。 以上宜しくお願いします。

    • ベストアンサー
    • Perl
  • ディレクトリツリーの表示

    Perlでtreeコマンドのような指定したディレクトリ以下の ディレクトリツリーを表示(取得)するモジュールなどはないでしょうか。 CPANから探してみたのですが英語の上に実行サンプルが載って いなかったりと該当するものかどうかの判断ができません。 名前や説明から該当しそうな(?)Perlモジュール ・Dir::Which ・File::CheckTree ・File:Find ・File::Path ・File::Searcher ・Tree::File など 因みに、環境非依存にしたいのでexecやバッククオートを使用したりは できません。

    • ベストアンサー
    • Perl