IsolatedStorageFile.GetUserStoreForApplication (). AvailableFreeSpace не так? - PullRequest
4 голосов
/ 28 октября 2011

Недавно я столкнулся с проблемой загрузки больших объемов данных в изолированное хранилище на устройстве WP7, когда во время загрузки теряется значительное количество свободного места.

Более конкретно, я проверяю свободное место перед загрузкой, и оно, скажем, 1,8 ГБ; затем я начинаю загрузку, и когда я получаю около 1,1 ГБ, я получаю всплывающее окно с предупреждением о нехватке места на диске, и вскоре после этого происходит сбой записи на диск с IOException.

Итак, на моем устройстве что-то занимает около 700 МБ (HTC Mozart 7). Это значение кажется неизменным во всех моих тестах.

Кроме того, IsolatedStorageFile.GetUserStoreForApplication (). AvailableFreeSpace возвращает значение, близкое к нулю, после повышения IOException, поэтому вполне очевидно, что хранилище заполнено.

Любая дополнительная информация / советы будут оценены.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 03 ноября 2011

Это определенно кэширующий захват дискового пространства. Для перемещения таких больших объемов данных вы должны смотреть на протокол, отличный от HTTP, ведь он изначально был предназначен только для загрузки веб-страницы. Лично я бы посмотрел на ftp, иначе вам придется разбить ваши данные на более управляемые куски.

0 голосов
/ 14 августа 2012

Я чувствую, что он не работает, потому что вы превысили пороговый предел, который вы могли установить для своего устройства в Zune. Пожалуйста, обратитесь к скриншоту ниже. Если это так, перепроверьте это значение и попробуйте снова. Также обратите внимание, что даже после установки 0% телефон все равно резервирует около 300-500 МБ

enter image description here

0 голосов
/ 31 октября 2011

Используете ли вы HttpWebRequest для загрузки файлов?Если это так, попробуйте установить для свойства HttpWebRequest.AllowReadStreamBuffering значение false.По умолчанию это правда.

Вы должны прочитать раздел «Замечания» документации для этого свойства, чтобы увидеть, соответствует ли его значение false потребностям вашего приложения, поскольку оно влияет на возникновение обратных вызовов.

...