我需要相对快速地确定用户计算机上的一组文件是否已由我的应用程序处理过。所讨论的应用程序将用户的文件上传到服务器,如果这些文件之前已经上传,则会跳过上传。到目前为止,我的计划是对文件进行散列处理,然后将结果和上传到服务器的标识符一起存储。我想我会遇到的问题是,由于哈希的长度,存储这些数据可能会变得非常麻烦。我预计目前大约有30-40个文件,但这可能会翻番或(假设)甚至三倍。快速确定一组文件在C#中是否相同?
这将有可能存储使用一个字典,哈希作为关键和服务器信息作为价值?然后我会将该Dictionary存储在App的Properties.Settings.Default对象中。用这个系统存储是否可行?还是我会遇到某种问题?请注意,由于应用程序的性质,有两个用户拥有相同数据集的机会有没有,所以我不需要比较用户之间的上传。另外,对于这种类型的操作,性能会如何?预计用户至少将拥有1 GB RAM的Pentium-M 1.5 GHz处理器。
我其实不会将它存储在app.config文件中,而是存储在user.config文件中。虽然你的观点很好,但我可能会把它分开。不需要user.config文件来气球!至于字典,我想知道是否有一个长度的大小关键它可以存储?如果我只是将这些哈希连接起来,那会起作用吗?对于性能,我担心文件的哈希。这些用户的笔记本电脑能够在合理的时间内完成此操作吗? – jasonh 2009-07-01 18:29:02
没有必要开始连接哈希 - 每个哈希将相当短,字典无论如何可以应付长键。是的,笔记本电脑应该绝对适用于哈希 - 大多数哈希计算相对便宜;大部分时间将被读取文件。 – 2009-07-01 18:46:29
我想我错过了一条重要的信息。这些文件集合在一起,因此,为每个文件创建一个字典条目是没有意义的,是吗? – jasonh 2009-07-01 18:55:08