.NET:IsolatedStorageException

时间:2010-11-03 18:04:08

标签: c# .net windows-phone-7 isolatedstorage

我正在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 says删除或禁用隔离存储时抛出此异常。这可能发生了吗?我在模拟器上遇到了这个问题。

更新:这似乎只在我第一次在模拟器上运行应用时发生。应用程序崩溃后,我再次在模拟器上运行它,并且不会发生此问题。

更新2 :使用FileMode.OpenOrCreate代替FileMode.Open似乎解决了问题。

1 个答案:

答案 0 :(得分:3)

第一次运行应用程序时,文件不在那里,请尝试这样做:

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