当我尝试使用StreamWriter时,在IsolatedStorageFileStream上不允许操作

时间:2013-07-08 08:53:16

标签: windows-phone-8 windows-phone filestream isolatedstoragefile

当我尝试使用此代码时,我遇到了问题:

using (IsolatedStorageFile myISF = IsolatedStorageFile.GetUserStoreForApplication())         
{
    try
    {
        object _readLock = new object();
        lock (_readLock)
        {
            var myFS = myISF.CreateFile(reply_FileName.Replace(" ", "_"));

            StreamWriter mySW = new StreamWriter(myFS);
            mySW.WriteLine(jsonToSave);
            mySW.Close();
        }
    }
    catch (IsolatedStorageException ex) { MessageBox.Show(ex.Message); }                
}

我已经尝试使用StreamWriter,但问题仍未解决。我有2页,在第一页上我使用:

using (myFS = new IsolatedStorageFileStream(Forms_path + form_ID + ".json",
                  FileMode.Create, FileAccess.Write, myISF))
{
    using (StreamWriter mySW = new StreamWriter(myFS))
    {
        mySW.WriteLine(json);
        mySW.Close();
    }
    myFS.Dispose();
}
myFS.Close();

它运作良好。只是第二个代码有问题。我尝试了很多变化,但都没有效果。

编辑:出现问题时,我在“输出”窗口中收到此消息:

mscorlib.ni.dll中出现'System.IO.IsolatedStorage.IsolatedStorageException'类型的第一次机会异常

EDIT2: 问题是我的文件名。我将日期添加到我的文件名中,“:”和“/”符号引起了麻烦。我觉得可悲......

2 个答案:

答案 0 :(得分:0)

每次调用该方法时都会创建锁定对象,因此它不会阻塞其他线程,因此会出现异常。 _readLock变量应该是类中的静态字段。

答案 1 :(得分:0)

问题是我的文件名。我将日期添加到我的文件名中,“:”和“/”符号引起了麻烦。我觉得可悲......