在我的程序中,我正在调用对文件夹内容进行大量更改的方法,包括:
deleting files/folders,
changing files/folders,
adding files/folders,
adding/deleting symboliclinks/junctions.
到目前为止,这没有问题。但是我想出了将文件夹的最终状态(在所有操作完成后)选择性地投影到另一个文件夹的想法,以便原始文件夹保持不变。
仅在应用操作之前复制文件夹是不合适的,因为操作可能会删除大量数据,而这些数据必须事先进行不必要的复制。所以我想到,一个专业的程序员肯定不会这样处理它。
理想情况下,我会写这样的东西(伪代码):
originalFolder.Delete(很多文件).Add(其他一些东西,可能会更改一些权限等).ProjectTo(newFolder)
是否有某种设计模式或其他方式可以实现这样的目标?也许一些虚拟文件系统我可以在将其具体化到单独的文件夹之前对其进行处理?
我知道如何编写扩展方法,并且我已经编写了很多琐碎的方法,但我真的需要走上正确的道路才能实现这样的目标。