我需要从MonoTouch iPhone / iPad报刊亭应用中的URL下载一个巨大的PDF文件。
PDF太大而无法放入内存中,所以我需要使用NSData逐步保存它。
我的想法如下:不是将所有下载的数据附加到NSData中,而是在下载结束时,当我获取所有数据时,将其存储到文件中,我想在一个单独的异步执行下载线程并附加到每个收到的块的文件并释放我的内存,但请确保如果连接被删除或应用程序崩溃,下载将自动从最后一个块恢复而不会破坏文件。
你有什么建议?有更好的方法吗?我怎么能在MonoTouch中做到这一点?我没有在Xamarin网站上找到关于iOS增量下载/简历的任何文档或代码示例。
答案 0 :(得分:1)
您不需要NSData
或来自ObjC的任何内容。
您可以使用WebClient
(http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx)在纯C#中实现此目的。
有关带进度条的分块下载示例,请参阅此处:http://devtoolshed.com/content/c-download-file-progress-bar
答案 1 :(得分:1)
您可以使用System.Net.WebClient并使用DownloadFile方法,该方法将数据从HTTP流式传输到磁盘,而不会将其保留在内存中。