我正致力于开发存储,检索和存档程序。
我想管理大量文件(每天50万)。每个文件的大小为20kb到30kb。
我遇到的情况是,如果我在单个文件夹中放入太多文件,通过Windows资源管理器或程序访问该文件夹的速度较慢。
我已经看到了一些解决方案(不知道他们是怎么做的),他们有像0,1,2,... 99这样的文件夹,他们以相同的数量或大小分发文件。
是否有任何算法或.net程序可用于执行此操作。
感谢您的期待,......
答案 0 :(得分:2)
考虑使用git方法。从文件名计算哈希值并使用其前几个字节作为目录名称。这将确保整个目录中的文件分布均匀:
public static string GetDirName(string fileName)
{
if (hashAlgo == null)
hashAlgo = new SHA256CryptoServiceProvider();
return BitConverter.ToString(
hashAlgo.ComputeHash(Encoding.UTF8.GetBytes(fileName))
.Take(2).ToArray()
);
}