【问题标题】:Where does WebClient stores data he downloads?WebClient 在哪里存储他下载的数据?
【发布时间】:2017-03-17 19:26:23
【问题描述】:

我正在编写一个应用程序,它会下载大量 json 数据(例如每天 20 GB,每次尝试数千 2-3 mb),但只存储 0.001% 的数据。

我想知道它在哪里存储临时数据,是保存在硬盘上还是存储在 RAM 中?

如果将数据存储在 HDD 上,我可以更改放置数据的位置吗?

【问题讨论】:

  • DownloadString 将数据存储在 RAM 中,不使用 HDD 上的任何临时文件。

标签: c# webclient data-storage


【解决方案1】:

它将所有内容存储在 RAM 中。

可以反编译或者参考reference sources

我认为DownloadBits 方法是一个很好的起点。

【讨论】:

    【解决方案2】:

    如果您使用的是 WebClient.DownloadFile,那么此方法的第二个参数让您指定存储文件的位置。 如果您使用 WebClient.DownloadData,您将获得需要保留的字节数据。 WebClient.DownloadString 类似,您可以将 JSON 作为字符串保存。

    【讨论】:

    • 我正在使用 WebClient.DownloadString 并且每次尝试下载 3 兆字节。它去哪里了,内存或硬盘上的一些临时文件?
    • 在不了解 API 的情况下,很难区分流式传输还是阻塞式。默认情况下,downloadstring 应该返回所有的调用响应。如果您想分块接收数据,DownloadStringAsync 或基于任务的替代方案可能会更有帮助。
    猜你喜欢
    • 1970-01-01
    • 2019-01-28
    • 2019-05-08
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    相关资源
    最近更新 更多