聚微商,国家海洋局局长,镇江天气预报查询
c# -- 使用缓冲区进行文件下载操作
1. 为避免下载超大文件占用内存资源,文件下载使用缓冲区,一点一点读取文件资源。
string str0 = @"ftp://localhost:21/xx/1.txt"; string str1 = @"d:\2.txt"; ftpwebrequest ftpwebrequest1 = (ftpwebrequest)webrequest.create(str0); ftpwebrequest1.keepalive = false; ftpwebrequest1.method = webrequestmethods.ftp.getfilesize; ftpwebresponse ftpwebresponse1 = (ftpwebresponse)ftpwebrequest1.getresponse(); long icontentlength1 = ftpwebresponse1.contentlength; console.writeline("ftp file content length:{0}字节", icontentlength1); ftpwebrequest ftpwebrequest2 = (ftpwebrequest)webrequest.create(str0); ftpwebrequest2.method = webrequestmethods.ftp.downloadfile; ftpwebresponse ftpwebresponse2 = (ftpwebresponse)ftpwebrequest2.getresponse(); stream stream = ftpwebresponse2.getresponsestream(); filestream filestream = new filestream(str1, filemode.create); int buffersize = 2* 1024 * 1024; byte[] buffer = new byte[buffersize]; int iread = 0; iread = stream.read(buffer, 0, buffersize); while (iread > 0) { filestream.write(buffer, 0, iread); iread = stream.read(buffer, 0, buffersize); }
stream.close();
filestream.close();
fileinfo newfileinfo = new fileinfo(str1); long icontentlength2 = newfileinfo.length; console.writeline("download file content lenth:{0}字节", icontentlength2); console.writeline("文件校验:{0}", icontentlength1 == icontentlength2 ? "ok" : "文件大小不一样");
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Net Core Web Api项目与在NginX下发布的方法
asp.net core3.1 引用的元包dll版本兼容性问题解决方案
IdentityServer4实现.Net Core API接口权限认证(快速入门)
ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径的实现
网友评论