MonoTouch: Как постепенно сохранить огромный PDF-файл, скачанный с URL-адреса? - PullRequest
1 голос
/ 29 декабря 2011

Мне нужно загрузить огромный файл PDF по URL-адресу в моем приложении для газетных киосков MonoTouch для iPhone / iPad.

Файл PDF слишком велик, чтобы уместиться в памяти, поэтому мне нужно сохранять его постепенно с помощью NSData.

Моя идея заключается в следующем: вместо добавления всех загруженных данных в NSData и в самом конце загрузки, когда я получил все данные, чтобы сохранить их в файл, я хочу выполнить загрузку асинхронно вотдельный поток и добавление в файл каждого полученного чанка и освобождение моей памяти, но будьте уверены, что в случае разрыва соединения или сбоя приложения загрузка автоматически возобновится с последнего чанка без повреждения файла.

Чтоты предлагаешь?Есть ли лучший метод?Как я могу сделать это в MonoTouch?На сайте Xamarin я не нашел ни документации, ни примера кода об инкрементной загрузке / резюме iOS.

Ответы [ 2 ]

1 голос
/ 29 декабря 2011

Вы можете использовать System.Net.WebClient и использовать метод DownloadFile, который будет передавать данные с HTTP на диск, не сохраняя их в памяти.

1 голос
/ 29 декабря 2011

Вам не нужно NSData или что-либо из ObjC. Вы можете использовать WebClient (http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx) для достижения этого в простом C #. Пример загрузки по частям с индикатором выполнения см. Здесь: http://devtoolshed.com/content/c-download-file-progress-bar

...