フリーソフトのFireFileCopyやFastCopyでは、ファイルの断片化を極力抑えたコピーが行えます。この機能をDiskMirroringToolに取り入れることはできないでしょうか。動作原理ですが、例えばFastCopyでは、SetFilePointer() + SetEndOfFile() で連続領域をコピー前に確保することでファイルの断片化を防止しているようです。FireFileCopyでの動作原理は知りませんが似たようなことを行っているのだと推測します。もちろん動作速度はそれなりに遅くなりますが、断片化を抑制できる効果には換えられません。私は普段のファイルコピーにはFireFileCopyを使うことが多いですが、その理由はこのファイル断片化を抑えたコピーが可能だからです。この機能がDiskMirroringToolに備われば、最高です!
FastCopy の断片化を抑えたコピーの機能について調べてみましたが、DMTU に追加するのはかなりの改造になりそうだということがわかりました。DMTU のファイルコピーは、フォルダ等も含め前処理がほとんどされない仕様になっています。1 フォルダごとにファイルを探して、1 ファイルごとにバックアップ先にあるかどうかで判断しています。「対象フォルダ配下に何個サブフォルダがあるか」や「このフォルダに何個ファイルがあるか」など前処理をほとんどせずにその場その場で判断しながら突き進む仕様です。良く言えば事前に対象ファイルのリストアップなどはしないので、それほどメモリを大量に使用しませんが、反面、計画的なディスク容量の確保などはできない作りになっています。そのため、断片化を抑えるために必要な前情報がほとんどないため、現状の作りのままでは、教えていただいた SetFilePointer + SetEndOfFile での断片化抑制はあまり効果がないものになってしまいそうです。この実装をするためには、事前のフォルダ・ファイルの把握という処理を追加する必要があります。せっかくご提案いただいたのですが、直近での機能の追加は難しい状況です。良い実装方法がわかるまで保留とさせてください。