ソフトの開発動機
普段、エクスプローラを使っていると、そのコピー/削除機能の遅さ(本来のデバイスの持つ速度が出ていない)や使いにくさ(処理中に確認ダイアログが出て、処理が一時停止する)が気になることが多かったため、それを解決すべく、このソフトを開発しました。できれば“車輪の再発明”のようなことはしたくなかったので、当時、世の中のコピーソフトをいろいろ試してみたのですが、私がほしかった以下のような特徴、
- 大容量ダブルバッファリング&マルチスレッド動作(別ハードディスク間コピーの高速化)
- 扱えるファイル数、ファイルサイズ、(OS側が許す限り)パスの長さは上限なし
- OSキャッシュを経由しないRead/Write動作(マシンが重くなりにくい)
- 途中で問い合わせをしないモードを持つ
- 事前に総ファイル数をカウントしない(即時実行する)モードを持つ
- フィルタ指定(特定ファイルやフォルダを除外したりなど)機能
- UNICODEベース
を満たすものがなかったため、自作ということになりました。ソフトの特徴
開発当時、「同一ハードディスク間」「別ハードディスク間」「巨大ファイル」「多数ファイル」などのいろいろなコピーパターンをたくさんのコピーソフト間で比較しました。が、どれをとっても「FastCopy」が最速であったため、“Windows系最速”を自称させていただいています(笑)。
巨大ファイルのコピーも高速ですが、コピー先に小さなファイルが多数ある場合の同期・差分コピーも、差分抽出動作の並列化&ファイル名ハッシュによる比較を行っているため、かなり高速です。
そのほか、開発動機に挙げた特徴以外に、事前に削除&更新対象となるファイルをリストアップできる機能やジョブ管理機能なども便利だと思います。
私の使い方
ログで確認しましたが、普段はコピーよりも削除機能を使うことが多いですね。通常の削除に比べて余計な問い合わせがないことと、高速なこと、ゴミ箱を経由しないためでしょう。
コピーでは、
- 毎日深夜に自動実行で、ハードディスク to ハードディスクの差分&同期バックアップ
- 「VirtualPC」「VMWare」の仮想ファイルやISOイメージのコピー
- 開発関連のバックアップ時に“.SVN”ディレクトリを除外したコピー
などに使うことが多いようです。今後の予定
二つのパソコン間に「FastCopy」を入れて、Windows共有(SMB)を経由しない、独自転送による高速コピー機能を考えています。SMB経由ではあまり高速動作ができません。そのため、別マシンへのファイルコピーでは、「FastCopy」などのコピーソフトを使うよりも、独自でTCP転送をしている拙作「IP Messenger」によるフォルダ転送機能を使うほうが、はるかに高速だったりします。
メンバ認識/認証や差分転送部分の実装など、面倒な点が多いのですが、いずれはやりたいと思っています。
また、多言語周りの枠組みももう少し充実させるつもりです。現状では、日本語と英語表示をOS環境に応じて自動切り換えしていますが、アジア方面から「自国言語版を作成・公開しているが、リソースを本家に取り込んでほしい」などの要望があり、日本語と英語以外は「言語別文字テーブルファイル」を用意することで対応できないかと考えています。
ちなみに、このように知らない間に拡張版ができるのが、BSDライセンスでソース公開した場合のよい点ですね。
(白水 啓章)