私のプログラムでは、次のようなフォルダのコンテンツに多くの変更を加えるメソッドを呼び出しています。
deleting files/folders,
changing files/folders,
adding files/folders,
adding/deleting symboliclinks/junctions.
これまでのところ問題ありません。しかし、オプションでフォルダーの最終状態(すべての操作が完了した後)を別のフォルダーに投影して、元のフォルダーが変更されないようにするというアイデアを思いつきました。
操作を適用する前にフォルダをコピーするだけでは適切ではありません。操作によって大量のデータが削除される可能性があるため、事前に不必要にコピーする必要があります。それで、プロのプログラマーは確かにこのようにアプローチしないだろうと思いました。
理想的には、次のようなものを記述します(擬似コード)。
originalFolder.Delete(たくさんのファイル).Add(他のいくつかのもの、おそらくいくつかの権限を変更するなど)。ProjectTo(newFolder)
このようなデザインパターンや他の方法で実現できるものはありますか?たぶん、別のフォルダに具体化する前に何かを行うことができる仮想ファイルシステムはありますか?
私は拡張メソッドの書き方を知っていて、すでにたくさんの些細なものを書いていますが、私は本当にこのようなことを達成する方法について正しい道を歩む必要があります。