「複数のファイルをまとめてコピーしたい」というニーズは、Windowsのようにドライブやフォルダを用いたファイル管理を行うOSでは常に存在するものだ。フォルダウィンドウやファイルアイコンを使ったGUIベースの管理は「どこからどこへ」という指定は行いやすい反面、例えば「ファイル名に×××が含まれたファイルだけ」とか「ファイルサイズが×××バイト以上のものだけ」とかいった、あらかじめ決まった特定の条件にマッチするファイルだけを抜き出す操作は、昔ながらのコマンドベースのシステムに比べると、多くの場合やりづらい。Windowsでも例えば「xcopy」や「robocopy」といった、さまざまなパターンを使ったファイル抽出とコピーの機能を持つコマンドはある。これらを使えば、「CsFileCopy」の動作に近いようなことはできるが、これらのコマンドに備わる複雑なコマンドラインオプションは、パソコンの操作に慣れた人にとっても難しいものだ。
「CsCopyFile」は、GUIならではの「対話的操作」と、文字列フィルタや更新日時によるフィルタなどの「条件指定」によるファイル抽出とをうまく組み合わせて操作できるコピーソフトだ。コピー元/コピー先は「開く」ダイアログで対話的に指定できるし、更新日付もカレンダー上から指定することができる。文字列の抽出条件だけはキーボード入力が必要になるとはいえ、これらの指定はキーボードから行うのが一番やりやすいのだから、それほど問題とはならない。
ところで、「CsFileCopy」のファイル抽出条件/除外条件フィルタ文字列は、一見するとコマンドプロンプトにおけるワイルドカード「*」と同じように感じられるが、実は微妙に違う。コマンドプロンプトでは例えば「*.jpg」といったワイルドカードを指定すると、拡張子が「.jpg」のファイルだけが抽出される。一方「CsFileCopy」の場合は、当該ファイルのフルパス名の中に指定した文字列が含まれているかどうかで判定される。
例えば「*.jpg」という条件は、コマンドプロンプトでは本来マッチしない「××××.jpgfile」といったファイルにもマッチする。また、フルパスにマッチすることから「data*¥*data.txt」といった、コマンドプロンプトのワイルドカードでは行えないパスを含んだファイル指定もできる。これに慣れると、コマンドプロンプトでは到底できない、複数のフォルダ階層にわたるファイルフィルタも作ることができる。この違いを理解すれば、かなり柔軟なコピー指定もできるようになる。なかなかおもしろい機能だ。
(天野 司)