1. 大量の要素が Iterator から返されてくる
2. 1 の要素 1 つにつき、1 ファイルに書き出し

と言う事をしようとしています。

2 の過程で一つのフォルダ以下にファイルを置きすぎないよう、フォルダを
切って(例えば 1000 ファイルごとに次のフォルダ)入れています。

しかし、単純にあるルートフォルダを直下にフォルダを切っていくと、
今度はフォルダ自体が 1000 個なりを超えてしまうので、
そうならないよう子なり孫なりに作ろうと思っているのですが、
うまいアルゴリズムが思いつきません。

そもそもこのようなシリアル番号的でなく、大量のファイルを分散して配置
できさえすれば良いのですが、何か良い方法は無いでしょうか?