windows phone 7隔离存储 - 不允许操作

时间:2013-08-16 10:45:35

标签: c# windows-phone-7 isolatedstorage isolatedstoragefile

所以我一直在做一个简单的游戏,我想实现一个高分系统。一旦玩家第一次加载主页面,就会创建一个新的文本文件(“hsc.txt”)并插入一些假的值,这些值稍后会被程序拆分,但是,目前我的代码会抛出一个{{ 1}}我似乎无法找到问题。我查看了从“System.IO.IsolatedStorage.IsolatedStorageException”消息框中获得的错误,但所有发布的解决方案似乎都不起作用。我试过关闭流但它似乎不起作用。

任何建议都将受到高度赞赏。

- operation not permitted

到目前为止,我已经:a)更改了FileMode b)更改了FileAccess和其他一些我甚至不记得的“quickfixes”。

1 个答案:

答案 0 :(得分:1)

CreateFile方法将流返回到创建的文件,并使其保持打开状态。因此,当您尝试在下一行中打开到同一文件的流时,它会抛出异常,因为该文件已被锁定。

您可以按如下方式重写代码:

 private void hasHighscores()
 {
        String fileName = "hsc.txt";
        using  (var isoStorage = IsolatedStorageFile.GetUserStoreForApplication())
        {
            if (!isoStorage.FileExists(fileName))
            {
                using (var isoStream = isoStorage.CreateFile(fileName))
                {
                    using (var fileStream = new StreamWriter(isoStream))
                    {
                        fileStream.WriteLine("n1:666,n2:777,n3:888,h1:666,h2:777,h3:888");
                    }  
                }
            }
        }  
    }

我还删除了stream.Close()说明。将流封装在using语句中时,将自动调用close方法。