-1

我在许多文件夹中有很多小(10KB - 1MB)文件(大约10M),这样的结构:

 - LEVEL 1 
  - LEVEL 2
   - LEVEL 3
    - file 1;
    - file 2; 
    ...

(文件存储在 USB3.0 1TB 磁盘上。文件总大小约 700MB)

和文件哈希在同一磁盘(Microsoft Access 2007)上的数据库:

 file 1 - hash 1;
 file 2 - hash 2;
 ....

每天我都需要计算每个文件的哈希值并获取已更改文件的列表(如果存在)。

如何编写适当的算法以最小化脚本工作时间?我猜有几个瓶颈:

  • 磁盘 I/O - 如何优化磁盘读取?
  • 数据库读取问题 - Access 如何处理 10M 行表?
  • CPU - 我需要并行化哈希计算吗?
  • 我更喜欢 C#,但也许我需要另一种语言?
  • 计算dir的哈希而不是文件更有效吗?

还要别的吗?

4

1 回答 1

1

不要重新发明轮子 - md5deep/hashdeep已经存在多年,并且正是这样做的。它是跨平台的,将在 Windows 上运行,并且可以从 C# 作为外部进程调用。

于 2013-01-16T11:19:27.093 回答