在 C# 中存储和比较目录的最有效数据结构是什么?
What would be the most effective data structure for storing and comparing directories in C#?
所以我现在正在尝试用 C# 开发一个应用程序(用于练习),一个简单的文件同步桌面程序,用户可以在其中选择要监视的文件夹,然后每当该目录发生更改时,它就会被复制到另一个目录。
我还在上学,刚刚完成我的数据结构课程,所以我对此还是有点陌生。但我目前的想法是最好的解决方案是一棵树,对吧?然后我可以使用广度优先搜索来比较,如果一个节点不匹配,我就把这个节点从原始树复制到复制树。然而,这似乎效率低下,因为我每次都会搜索整棵树。
可能也在考虑链表。我真的不知道该去哪里。到目前为止,我已经完成的是目录监控,因此每次更改时我都可以保存到日志文件中。所以这很好。但我觉得这是最难的部分。任何人都可以提供任何指导吗?
使用散列 table(例如,Dictionary<string,FileInfo>
。FileInfo
的属性之一是文件的绝对路径:使用它作为键。
哈希 table 查找便宜(而且速度快)。
所以我现在正在尝试用 C# 开发一个应用程序(用于练习),一个简单的文件同步桌面程序,用户可以在其中选择要监视的文件夹,然后每当该目录发生更改时,它就会被复制到另一个目录。
我还在上学,刚刚完成我的数据结构课程,所以我对此还是有点陌生。但我目前的想法是最好的解决方案是一棵树,对吧?然后我可以使用广度优先搜索来比较,如果一个节点不匹配,我就把这个节点从原始树复制到复制树。然而,这似乎效率低下,因为我每次都会搜索整棵树。
可能也在考虑链表。我真的不知道该去哪里。到目前为止,我已经完成的是目录监控,因此每次更改时我都可以保存到日志文件中。所以这很好。但我觉得这是最难的部分。任何人都可以提供任何指导吗?
使用散列 table(例如,Dictionary<string,FileInfo>
。FileInfo
的属性之一是文件的绝对路径:使用它作为键。
哈希 table 查找便宜(而且速度快)。