5

Silverlight で Windows Phone 7 アプリを作成しています。で困っていIsolatedStorageます。

        IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication();
        if (!storage.FileExists(STORIES_FILE))
        {
            storage.CreateFile(STORIES_FILE);
        }

        string contents;

        // fails here
        using (IsolatedStorageFileStream stream = storage.OpenFile(STORIES_FILE, FileMode.Open))
        {
            using (StreamReader reader = new StreamReader(stream))
            {
                contents = reader.ReadToEnd();
            }
        }

例外は次のとおりです。

"Operation not permitted on IsolatedStorageFileStream."
System.Exception {System.IO.IsolatedStorage.IsolatedStorageException}

ここで何が間違っているのでしょうか?MSDN によると、この例外は、分離ストレージが削除または無効化されたときにスローされるとのことです。それは起こったでしょうか?エミュレータでこの問題が発生しています。

更新:これは、エミュレーターでアプリを初めて実行したときにのみ発生するようです。アプリがクラッシュした後、エミュレーターで再度実行しましたが、この問題は発生しません。

更新 2 :FileMode.OpenOrCreateの代わりに使用FileMode.Openすると、問題が解決したようです。

4

1 に答える 1

3

アプリケーションを初めて実行するとき、ファイルがそこにない場合は、代わりにこれを試してください。

using (IsolatedStorageFileStream stream = storage.OpenFile(STORIES_FILE, FileMode.OpenOrCreate))
        {
            using (StreamReader reader = new StreamReader(stream))
            {
                contents = reader.ReadToEnd();
            }
        }
于 2010-11-03T18:12:20.283 に答える