RSSフィードNo.125 「ファイル断片化を極力抑えたコピー」機能
   
日時:
2019/01/03 15:12
名前:
jack ID:yp6FgnVQ

フリーソフトのFireFileCopyやFastCopyでは、ファイルの断片化を極力抑えたコピーが行えます。この機能をDiskMirroringToolに取り入れることはできないでしょうか。動作原理ですが、例えばFastCopyでは、SetFilePointer() + SetEndOfFile() で連続領域をコピー前に確保することでファイルの断片化を防止しているようです。FireFileCopyでの動作原理は知りませんが似たようなことを行っているのだと推測します。もちろん動作速度はそれなりに遅くなりますが、断片化を抑制できる効果には換えられません。私は普段のファイルコピーにはFireFileCopyを使うことが多いですが、その理由はこのファイル断片化を抑えたコピーが可能だからです。この機能がDiskMirroringToolに備われば、最高です!

メンテ
(指定範囲表示中) もどる スレッド一覧 新規スレッド作成
2 Re: 「ファイル断片化を極力抑えたコピー」機能
   
日時:
2019/10/22 18:50
名前:
ばぐ★NAGA ID:nZOQ8Ylo

FastCopy の断片化を抑えたコピーの機能について調べてみましたが、
DMTU に追加するのはかなりの改造になりそうだということがわかりました。

DMTU のファイルコピーは、フォルダ等も含め前処理がほとんどされない仕様になっています。
1 フォルダごとにファイルを探して、1 ファイルごとにバックアップ先にあるかどうかで判断しています。

「対象フォルダ配下に何個サブフォルダがあるか」や「このフォルダに何個ファイルがあるか」など
前処理をほとんどせずにその場その場で判断しながら突き進む仕様です。


良く言えば事前に対象ファイルのリストアップなどはしないので、それほどメモリを大量に使用しませんが、
反面、計画的なディスク容量の確保などはできない作りになっています。

そのため、断片化を抑えるために必要な前情報がほとんどないため、
現状の作りのままでは、教えていただいた SetFilePointer + SetEndOfFile での断片化抑制は
あまり効果がないものになってしまいそうです。
この実装をするためには、事前のフォルダ・ファイルの把握という処理を追加する必要があります。

せっかくご提案いただいたのですが、直近での機能の追加は難しい状況です。
良い実装方法がわかるまで保留とさせてください。

メンテ
(指定範囲表示中) もどる スレッド一覧 新規スレッド作成
題名 スレッドをトップへソート
名前
E-mail (非表示)
パスワード (記事メンテ時に使用)
投稿キー (投稿キーを入力してください)
コメント

   クッキー保存