2022-08-17 (水)
Goのfsパッケージを使って,ディレクトリ内のファイルを列挙したい場合,ReadDirFileとReadDirFSインターフェイスにReadDir()があるけど,ReadDirFSの方はファイルの個数を指定できないので全ファイル一度に読む必要があって,大量のファイルがあると困る.
特にfs.WalkDir()もReadDirFSを先に確認する実装になっているので,アクセスに時間がかかる場所に大量のファイルがあると,読み込み中にコールバックが呼びだされなくて微妙...
かといって,ReadDirFileを優先して使うWalkDirを作ってしてしまうと,今度はReadDirFileが実装されてるかOpenするまで不明なので,ReadDirFileを実装してないファイルシステムで無駄なOpenが発生して,これも微妙な動作になる..OpenDirFSみたいなインターフェイス作ってほしかった...