IsolatedStorageFile.GetUserStoreForApplication()。AvailableFreeSpaceが間違っていますか?

私は最近、大量のデータを、ダウンロード中にかなりの量の空き領域が失われたときに、WP7デバイス上の隔離されたストレージにダウンロードする問題に遭遇しました。

具体的には、私はダウンロードする前に空き容量を確認します。ダウンロードが始まり、約1.1 GBになったらディスクスペースの警告ポップアップが表示され、すぐにディスクへの書き込みがIOExceptionで失敗します。

だから私のデバイス(HTCモーツァルト7)で約700 MBのスペースを取っているものがあります。この値はすべてのテストを通じて一貫しているようです。

また、IsolatedStorageFile.GetUserStoreForApplication()。AvailableFreeSpaceは、IOExceptionが発生した後にゼロに近づきます。したがって、ストレージがいっぱいになっていることは明らかです。

追加の情報/ヒントをいただければ幸いです。

ありがとう!

4
あなたはZuneがあなたに言うこととその価値を比較しましたか?
追加された 著者 Claus Jørgensen,
妥当と思われる。この問題に焦点を当ててみましょう。
追加された 著者 Claus Jørgensen,
週末はウクライナにいた。とにかく、より多くの情報を提供できるはずの@ vlad.strugaruです。
追加された 著者 Claus Jørgensen,
@ClausJørgensen - この質問に対する賞金は5時間前に失効し、猶予期間は19時間で終了します。あなたは適切な答えを見つけましたか?恩恵を除けば、私の答えがあなたの問題を解決することを知りたいと思うだろう。
追加された 著者 Visual Stuart,
私の間違いを赦してください、クラウス。この週末、私は元Ukranianポップスターとちょっとぶらぶらしていた。 @ vlad.strugaru、私はあなたに私の前のコメントを指示していたはずです。
追加された 著者 Visual Stuart,
私は、Zuneがこれになると非常に不正確であることを発見しました。これは、電話の設定画面と、同じ値を返すAvailableFreeSpace APIプロパティに比べ、zuneは最大600 MB離れています。
追加された 著者 vlad.strugaru,
余分なデータは、アプリケーションフォルダのファイルから来ていません。多くのテストとチェックの後、これらの700 MBがシステム全体のHTTPキャッシュで使用されている可能性が高いという結論に至りました。あなたのデバイスでこの同じ動作を観察したことがありますか?最も重要なことは、これを無効にすることはできないと仮定して、誰でも正確な値を知っているので、mydownloadルーチンに予防手段を書くことができますか?
追加された 著者 vlad.strugaru,

3 答え

I feel its failing because you have crossed the threshold limit you might have set for your device in zune. Please refer the screenshot below. If that is whats happening recheck that value and try again. Also note that even after setting it 0% the phone still reserves about 300-500MB

enter image description here

0
追加された

HttpWebRequestを使ってファイルをダウンロードしていますか?もしそうなら、 HttpWebRequest.AllowReadStreamBuffering プロパティをfalseに設定します。デフォルトはtrueです。

そのプロパティのドキュメントの「備考」セクションを読んで、コールバックの発生時に影響するため、これをfalseに設定するとアプリケーションのニーズに一致するかどうかを確認する必要があります。

0
追加された

これは間違いなくディスクスペースを占有しています。このような大量のデータをシフトするには、HTTP以外のプロトコルを検討する必要があります。元々は、Webページのダウンロード専用です。私は個人的にはftpを見ています。さもなければ、あなたのデータをより管理しやすい塊に分割しなければなりません。

0
追加された