- ベストアンサー
複数ファイル?処理させる方法について
Perlでファイルに適当なレコードを追加するスクリプトを組んだのですが、 どうしたら、複数ファイルを一度に処理できるのでしょうか? 例えば、フォルダ内のファイル全てを処理するとか、、、 環境はwin ntです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
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引数にディレクトリ名を記述すると、そのファイルエントリーを配列で返します。 取得されたすべてのファイルを順にオープンし、処理を行うことでご希望の処理ができると思います。
その他の回答 (1)
- shigatsu
- ベストアンサー率26% (511/1924)
回答No.2
Perl以外でそういう処理をしたことがありますか? アルゴリズム的には、ファイルのエントリ情報を取得して、それがなくなるまで繰り返し実行するのが普通ですね。 rewinddir,readdir という関数が有りますのでそれを使えば可能だと思います。
質問者
お礼
早速の回答ありがとうございます。 他の言語でもこういった処理をしたことがありませんでした。。。 rewinddirというのはちょっと何に使うのかわかりませんが もうちょっと調べてやってみようと思います。
お礼
早速の回答ありがとうございます。 具体的なロジックまで記述していただき、 とてもわかり易かったです。 これで何とかなりそうです。本当にありがとうございました。