gpt4 book ai didi

c# - 如何将任何文件夹更改投影到新文件夹并保持原始文件夹不变?

转载 作者:太空宇宙 更新时间:2023-11-03 13:58:33 25 4
gpt4 key购买 nike

在我的程序中,我调用了对文件夹内容进行大量更改的方法,包括:

deleting files/folders,
changing files/folders,
adding files/folders,
adding/deleting symboliclinks/junctions.

目前没问题。但我想出了一个想法,可选择将文件夹的最终状态(在完成所有操作后)投影到另一个文件夹,以便原始文件夹保持不变。

在应用操作之前只复制文件夹是不合适的,因为操作可能会删除大块数据,而这些数据必须事先进行不必要的复制。所以我想到,专业的程序员肯定不会这样处理。

理想情况下我会写这样的东西(伪代码):

originalFolder.Delete(很多文件)。Add(一些其他的东西,可能会改变一些权限等)。ProjectTo(newFolder)

是否有某种设计模式或其他方式可以实现这样的目标?也许我可以在将其具体化到单独的文件夹之前对某些虚拟文件系统进行操作?

我知道如何编写扩展方法并且我已经编写了很多琐碎的方法,但我真的需要在如何实现这样的事情上走上正确的道路。

最佳答案

如果添加和删除将通过您的 api 完成,那么您可以修改内存中的文件列表,而无需触及物理文件,并且当您设置好时,使用最终文件夹中的副本进行更改。

当然,假设您在任何情况下都不需要更改文件,因此您不需要在提交之前通过文件系统读取新结构,我的意思是它完全在您的应用程序中。

如果这是在 linux 上,我会建议另一种解决方案,即使用硬链接(hard link)并将文件硬链接(hard link)到许多文件夹,这样就可以在不触及第二个文件夹的情况下对第一个文件夹做任何你想做的事情。我不确定 NTFS 是否支持。

关于c# - 如何将任何文件夹更改投影到新文件夹并保持原始文件夹不变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11362424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com