Windows phone 7 隔离存储问题WP7

Windows phone 7 隔离存储问题WP7,windows-phone-7,isolatedstorage,Windows Phone 7,Isolatedstorage,我只是尝试使用一些基本的隔离存储功能,但我的SaveData函数在这一行中不断遇到一个无效操作: IsolatedStorageFileStream fs = savegameStorage.OpenFile(Filename, FileMode.Open); 以下是我正在使用的两个主要功能 publicstaticvoidopendata() { IsolatedStorageFile savegameStorage=IsolatedStorageFile.GetUserStoreFor

我只是尝试使用一些基本的隔离存储功能,但我的SaveData函数在这一行中不断遇到一个无效操作:

IsolatedStorageFileStream fs = savegameStorage.OpenFile(Filename, FileMode.Open); 
以下是我正在使用的两个主要功能

publicstaticvoidopendata()
{ 
IsolatedStorageFile savegameStorage=IsolatedStorageFile.GetUserStoreForApplication();
if(savegameStorage.FileExists(Filename))
{ 
使用(IsolatedStorageFileStream fs=savegameStorage.OpenFile(文件名,System.IO.FileMode.Open))
{ 
如果(fs!=null)
{ 
如果(fs.Length==0)
{ 
fs.Close();
fs.Dispose();
SaveData();
返回;
} 
//重新加载保存的高分数据。
字节[]保存字节=新字节[6*(50)];
int count=fs.Read(存储字节,0,(6*50)+8);
ByteStream BS=新的ByteStream(ByteStreamMode.Read,saveBytes,0);
LevelData.LastStage=BS.ReadInt32();
LevelData.LastLevel=BS.ReadInt32();
对于(int i=0;i<6;++i)
对于(int x=0;x<5;++x)
对于(int y=0;y<10;++y)
LevelData.LevelComplete[i][x,y]=BS.ReadBool();
} 
其他的
{ 
fs.Close();
fs.Dispose();
savegameStorage.CreateFile(文件名);
SaveData();
} 
fs.Close();
} 
} 
其他的
{ 
SaveData();
} 
} 
公共静态void SaveData()
{ 
IsolatedStorageFile savegameStorage=IsolatedStorageFile.GetUserStoreForApplication();
IsolatedStorageFileStream fs=savegameStorage.OpenFile(文件名,FileMode.Open);
如果(fs!=null)
{ 
ByteStream BS=新的ByteStream(ByteStreamMode.Write,null,0);
BS.WriteInt32(LevelData.LastStage);
BS.WriteInt32(LevelData.LastLevel);
对于(int i=0;i<6;++i)
对于(int x=0;x<5;++x)
对于(int y=0;y<10;++y)
b.WriteBool(LevelData.LevelComplete[i][x,y]);
fs.Write(BS.StreamBuffer,0,BS.StreamBuffer.Length);
} 
fs.Close();
}

我认为问题可能是由于filestream用作方法调用“savegameStorage.CreateFile(FileName)”;返回对已创建文件的IsolatedStorageFileStream的引用,然后返回您的SaveData();继续尝试打开最近创建的文件,该文件仍在使用流

如果您想保留没有参数的静态调用,我将按照SaveNewData()创建一些内容;而不是调用open方法,而是调用CreateFile。像下面这样

public static void SaveNewData() 
{ 
    IsolatedStorageFile savegameStorage = IsolatedStorageFile.GetUserStoreForApplication(); 
    IsolatedStorageFileStream fs = savegameStorage.CreateFile(Filename);
    //Continue with existing code.
}

希望有帮助。

您是否尝试过创建较小的文件?可能是文件空间不够。如果你需要更多的空间,你必须请求它。