• ベストアンサー

複数ファイル?処理させる方法について

Perlでファイルに適当なレコードを追加するスクリプトを組んだのですが、 どうしたら、複数ファイルを一度に処理できるのでしょうか? 例えば、フォルダ内のファイル全てを処理するとか、、、 環境はwin ntです。

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

  • ベストアンサー
noname#25358
noname#25358
回答No.1

 ディレクトリを操作するには、opendir、readdir、closedirという3つの関数を使います。  具体的には、 sub getDirEnt {   local(@dirs, $i);   opendir(DIRHANDLE, "@_[0]");   while ( $i = readdir(DIRHANDLE) ) {     push(@dir, $i);   }   close(DIRHANDLE);   return @dirs; }  このサブルーチンのようにしてください。(このサンプルはタブを全角スペースで記述しています)  これは、第1引数にディレクトリ名を記述すると、そのファイルエントリーを配列で返します。  取得されたすべてのファイルを順にオープンし、処理を行うことでご希望の処理ができると思います。

makos
質問者

お礼

早速の回答ありがとうございます。 具体的なロジックまで記述していただき、 とてもわかり易かったです。 これで何とかなりそうです。本当にありがとうございました。

その他の回答 (1)

  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.2

Perl以外でそういう処理をしたことがありますか? アルゴリズム的には、ファイルのエントリ情報を取得して、それがなくなるまで繰り返し実行するのが普通ですね。 rewinddir,readdir という関数が有りますのでそれを使えば可能だと思います。

makos
質問者

お礼

早速の回答ありがとうございます。 他の言語でもこういった処理をしたことがありませんでした。。。 rewinddirというのはちょっと何に使うのかわかりませんが もうちょっと調べてやってみようと思います。

関連するQ&A