我们需要 Winforms 应用程序从本地文件系统(或网络位置)读取数千个文件并将它们存储在数据库中。
我想知道加载文件的最有效方法是什么?总共可能有许多千兆字节的数据。
File.ReadAllBytes
当前正在使用,但应用程序最终会在计算机内存用完时锁定。
当前代码循环遍历包含文件路径的表,用于读取二进制数据:
protected CustomFile ConvertFile(string path)
{
try
{
byte[] file = File.ReadAllBytes(path);
return new CustomFile { FileValue = file };
}
catch
{
return null;
}
}
然后使用 NHibernate 作为 ORM 将数据保存到数据库(SQL Server 2008 R2 或 2012)。