.net - System.Net.WebClient.DownloadFile() 是否分块读取下载的文件?

标签 .net

System.Net.WebClient.DownloadFile() 是分块读取下载的文件,还是将整个文件读取到内存中,最后将其转储到磁盘?
有人知道吗?从我的测试来看,该文件似乎是立即用 0 字节创建的,然后在下载完成后爆炸到完整大小。但不知何故,这令人难以置信,因为这意味着在下载 2GB 文件时会占用 2GB 内存……那毫无意义。

最佳答案

它将接收到的任何内容直接写入 FileStream。 DownloadBitsState.RetrieveBytes() method , WriteStream.Write() 调用,如果你想看看反射器或引用源。在文件关闭之前,资源管理器中的 size 属性不会更新。

关于.net - System.Net.WebClient.DownloadFile() 是否分块读取下载的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5690511/

相关文章:

.net - 分析进程中加载​​的 native DLL 和程序集的内存占用的工具?

c# - 解析器错误 : Could not create type

c# - 将对象属性值转换为字典

java - 等同于 Java 中的 CryptoStream .NET?

.net - 在 Windows 8 应用程序中没有 FileTypeFilter 的 FileOpenPicker

.net - 是否有 WPF 控件可用于展开/折叠面板(动画)

c# - 在使用异步的 .NET MVC/WebApi 应用程序中处理 Culture 的最佳方法是什么?

c# - 转换 XML 以使用较新版本进行反序列化

c# - 根据以下标准开发桌面应用程序的语言/平台

asp.net - 不同的EntityFramework并排在同一个解决方案中?