保存到silverlight中已打开的文件时出现未处理的异常

时间:2011-05-03 10:57:26

标签: c# .net silverlight silverlight-4.0 savefiledialog

我正在尝试编写用于在Silverlight 4.0中将文件保存到本地磁盘的逻辑。我正在使用SaveFileDialog类。它工作正常。但是当我试图保存到已经打开查看的文件时,我得到一个未处理的异常。应用程序也立即崩溃。

类似的问题与Silverlight 3有关。我通过在application_unhandledexception事件中搜索异常中的一些SaveFileStream文本来吞掉异常。我认为这将在Silverlight 4中处理,但现在变得更糟。即使是解决方法现在也无法正常工作。

我已经在SaveFileDialog逻辑周围设置了try catch,IOException(另一个进程正在使用文件)被安全地捕获到这里,但是立即触发了我上面描述的异常。

任何帮助都将不胜感激。

更新:excel文件会发生这种情况,而txt文件则不会发生这种情况。我认为所有MS Office文件都会出现这种情况。

A post about the issue on the official forum

1 个答案:

答案 0 :(得分:1)

我可以问你如何保存文件? 流是否被冲洗,关闭并正确处理?

像这样作为一个例子(注意:有很多替代方案可以做到这一点):

using (Stream stream = new IsolatedStorageFileStream("somefilename.ext", FileMode.Create, FileAccess.Write, IsolatedStorageFile.GetUserStoreForApplication()))
{
    // Use the stream normally in a TextWriter
    using (TextWriter writer = new StreamWriter(stream, Encoding.UTF8))
    {
        writer.Flush();
        writer.Close();
    }

    stream.Close();
}

希望是和帮助: - )