窗户电话7分离存储 - 操作不允许(windows phone 7 isolated storage

2019-10-18 12:07发布

所以,我一直工作在一个简单的游戏,我想实现一个高分系统。 一旦玩家负荷高达首次新建一个文本文件被创建(“hsc.txt”)的主页,并插入一些假值将在稍后由计划分头行动,但是,目前我的代码抛出一个System.IO.IsolatedStorage.IsolatedStorageException ,我似乎无法发现问题。 我抬头一看,我从中消息框得到了错误“ - operation not permitted ”,但似乎被张贴的所有解决方案并不管用。 我试图关闭流,但它似乎并没有工作。

任何意见将得到高度赞赏。

 private void hasHighscores()
      {
        String fileName = "hsc.txt";
        using  (var isoStorage = IsolatedStorageFile.GetUserStoreForApplication())
        {
            if (!isoStorage.FileExists(fileName))
            {
                isoStorage.CreateFile(fileName);

                       using (var isoStream = new IsolatedStorageFileStream(fileName,   FileMode.Append, FileAccess.Write, isoStorage))
                    {
                        using (var fileStream = new StreamWriter(isoStream))
                        {
                            fileStream.WriteLine("n1:666,n2:777,n3:888,h1:666,h2:777,h3:888");
                            fileStream.Close();
                        }
                        isoStream.Close();

                    }
            }
        }  
    }

到目前为止,我有:1)改变了的FileMode二)改变的FileAccess和其他一些“快速修复”,我甚至不记得了。

Answer 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()指令。 当你在一个封闭流的close方法被自动调用using的语句。



文章来源: windows phone 7 isolated storage - operation not permitted