Tag Archives: 再起

php でディレクトリ配下の全ファイルを逐次処理する方法


PHPを使ってディレクトリ配下の全ファイルを再帰的に処理する方法です。 イテレータを使います。

例えば全ファイルの絶対パスを出力するなら次のようにします。

イテレーションする対象をファイルだけに絞ったものを作るのもありですね。 次のように yield を使って関数を作ることもできます。

でもこれは yield を使っているため PHP 5.5 からしか使えません。 FilterIterator を使えば PHP 5.1 から使える関数を作成できます。

このように FileFilterIterator を作り、 $iterator = new FileFilterIterator($anIterator); のようにすれば、ファイルのみの Iterator が作れます。

Iterator なんて 言語の機能に依存しすぎだから readdir つかって自分でイテレータ作るべきだ」というご意見もあります。


VBA: Output file list in a directory, recursively


This is the code I frequently use.

It recursively exports file list in a directory on Microsoft Office Application, like Excel. It is written in VBA.

VBA can be written in object oriented way, but I didn’t because I had to write the code as soon as possible.

Process Flow

  1. A user clicks the button on the sheet.
  2. The program show a folder browsing dialog.
  3. User chooses the folder, then the program make the list of file in the folder.
  4. The program exports the file list onto a form (or sheet).

To Do

  • Create a module file and create the following functions.
    • get file list
    • handle folder browsing dialog
  • Create a dialog to show the result.
  • Create a button on the sheet and add function on clicking.
Continue reading VBA: Output file list in a directory, recursively