所以我一直在做一个简单的游戏,我想实现一个高分系统。一旦玩家第一次加载主页面,就会创建一个新的文本文件(“hsc.txt”)并插入一些假的值,这些值稍后会被程序拆分,但是,目前我的代码会抛出一个{{ 1}}我似乎无法找到问题。我查看了从“System.IO.IsolatedStorage.IsolatedStorageException
”消息框中获得的错误,但所有发布的解决方案似乎都不起作用。我试过关闭流但它似乎不起作用。
任何建议都将受到高度赞赏。
- operation not permitted
到目前为止,我已经:a)更改了FileMode b)更改了FileAccess和其他一些我甚至不记得的“quickfixes”。
答案 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方法。