public static string MDFile(string fileName)
{
FileStream fs = File.Open(fileName, FileMode.Open, FileAccess.Read);
byte[] array = new byte[fs.Length];
fs.Read(array, 0, (int)fs.Length);
byte[] digest = MD5Array(array);
fs.Close();
return ArrayToHexString(digest, false);
}
上面这段程序我是在网上一些朋友的md5算法的程序中摘过来的,这段代码对于读大文件会有问题,因为把整个文件的大小都读进去了,所以对于大文件内存会吃光.请各位朋友请教
{
FileStream fs = File.Open(fileName, FileMode.Open, FileAccess.Read);
byte[] array = new byte[fs.Length];
fs.Read(array, 0, (int)fs.Length);
byte[] digest = MD5Array(array);
fs.Close();
return ArrayToHexString(digest, false);
}
上面这段程序我是在网上一些朋友的md5算法的程序中摘过来的,这段代码对于读大文件会有问题,因为把整个文件的大小都读进去了,所以对于大文件内存会吃光.请各位朋友请教
解决方案 »
- 用asp.net代码拼写的sql语句,关键字为"中文"时,检索结果为空
- 卸载应用程序域时出现异常
- vs2005创建的WEBForm有显示控件,而vs2008 却毛病重重。
- windows 密码与sql server 2005的密码问题???
- 急急急.怎么样伴随着Cookie来打开网页?高分请教
- 怎样使用C#调用SHDocVw写程序把本地收藏夹内容导入到数据库中
- 以下SQL语句在C#里怎样写??????
- 想玩一下vs.net 2005,请各位同任出手帮忙提速.
- 水晶报表的打印!!!(化验单格式的打印)
- C#中连通区域标记的问题
- Microsoft.Practices.EnterpriseLibrary.Data的Web.Config如何配置?
- c#给com传入istream,居然取不出来
fs.Read(array, 0, (int)fs.Length);可以换成循环读,参考 byte[] bye = new byte[1024];
int tt = stream.Read(bye, 0, length);
//下面循环读取网络流并写进文件
while (tt > 0)
{
string ss = System.Text.Encoding.ASCII.GetString(bye);
int x = ss.IndexOf("<EOF>");
if (x != -1)
{
filestream.Write(bye, 0, x);
filestream.Flush();
break;
}
else
{
filestream.Write(bye, 0, tt);
filestream.Flush();
}
tt = stream.Read(bye, 0, length);
}