我正在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();
            }
        }

异常(exception)是:
"Operation not permitted on IsolatedStorageFileStream."
System.Exception {System.IO.IsolatedStorage.IsolatedStorageException}

我在这里可能做错了什么? MSDN says移除或禁用隔离存储时将引发此异常。那会发生吗?我在模拟器上遇到此问题。

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

更新2 :使用FileMode.OpenOrCreate而不是FileMode.Open似乎已解决了该问题。

最佳答案

第一次运行应用程序时,该文件不存在,请尝试以下操作:

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

关于c# - .NET:IsolatedStorageException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4090123/

10-11 05:17