C# windows phone 7隔离存储-不允许操作
所以我一直在做一个简单的游戏,我想实现一个高分系统。一旦播放器第一次加载主页,创建了一个新的文本文件(“hsc.txt”),并且插入了一些伪值,这些伪值随后被程序分割,但是,目前我的代码抛出了一个C# windows phone 7隔离存储-不允许操作,c#,windows-phone-7,isolatedstorage,isolatedstoragefile,C#,Windows Phone 7,Isolatedstorage,Isolatedstoragefile,所以我一直在做一个简单的游戏,我想实现一个高分系统。一旦播放器第一次加载主页,创建了一个新的文本文件(“hsc.txt”),并且插入了一些伪值,这些伪值随后被程序分割,但是,目前我的代码抛出了一个System.IO.IsolatedStorage.IsolatedStorageException,我似乎找不到问题。我已经查找了从消息框中得到的错误,该消息框是“-不允许操作”,但所有发布的解决方案似乎都不起作用。我试着关闭了溪流,但似乎不起作用 如有任何建议,将不胜感激 private void
System.IO.IsolatedStorage.IsolatedStorageException
,我似乎找不到问题。我已经查找了从消息框中得到的错误,该消息框是“-不允许操作”
,但所有发布的解决方案似乎都不起作用。我试着关闭了溪流,但似乎不起作用
如有任何建议,将不胜感激
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();
}
}
}
}
到目前为止,我已经:a)更改了文件模式b)更改了文件访问权限和一些我都不记得的其他“快速修复”。方法
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方法。方法将流返回到所创建的文件,并使其保持打开状态。因此,当您试图在下一行中打开指向同一文件的流时,它会抛出一个异常,因为该文件已被锁定
您可以按如下方式重写代码:
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方法