2011-02-07 9 views
0

古いストレージストレージデータを使用するアプリケーションを作成しました。古いデータが定期的に消去されてしまいます。私はClosingから呼び出され、古いデータの分離されたストレージをチェックし、それを削除する関数を書いています。Windows Phone 7で終了したときに隔離されたストレージが最後の2つの一時ファイルを削除しないのはなぜですか?

このルーチンは、ディレクトリ内の最後の2つのファイルを除くすべてのファイルも削除します。コードをデバッグすると、それらのファイルに対してDeleteFileメソッドを実行することがわかります。私は、ファイルがまだ存在するかどうかを確認するために、DeleteFileの呼び出しの直後にチェックしていたとしても。デバッガによればそれはしません。

しかし、アプリケーションが再び起動すると、古いデータはまだ最後のファイルが隔離されたストレージに残ります。競合状態である可能性があると考えて、私は削除ルートの後にThread.sleep(1000)を入れます。

電話機はこの遅延を守らずに、デルテコードを実行した直後に終了します。私はその時点でストリームへの参照を持っていないので、DeleteFileに関連するflushコマンドを見つけることができませんでした。

他に誰かがこれを見つけましたか?私が紛失している魔法のフラッシュメソッドはありますか?これは電話機IsolatedStorageの実装の欠陥ですか?

+2

あなたが使用しようとしているコードを表示して、それをデバッグするのに役立つかもしれません。それが立てば、あなたの質問は「私は曖昧に記述された問題があります。類似していますか?答えられない。 –

+0

コードなし、ヘルプなし。 – MatthieuGD

答えて

1

私はMattとMatthieuに同意します。 でも、あなたに聞いてみたいのですが、ファイルを切り捨ててみましたか? IsolatedStorageFileStream isfStream = new IsolatedStorageFileStream(strXMLFile, FileMode.Truncate, isf);

関連する問題