在silverlight中保存到已打开的文件时发生的未处理异常

本文关键字:文件 异常 未处理 silverlight 保存 | 更新日期: 2023-09-27 17:54:15

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

Silverlight 3也有类似的问题。在application_unhandledexception事件中,我通过在异常中搜索一些SaveFileStream文本来消除异常,从而解决了这个问题。我原以为这个问题会在Silverlight 4中得到解决,但现在情况变得更糟了。

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

如有任何帮助,不胜感激。

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

官方论坛关于这个问题的帖子

在silverlight中保存到已打开的文件时发生的未处理异常

我可以问一下你如何保存文件吗?流是否被正确地冲洗、关闭和处理?

像这样作为一个例子(注意:有很多替代的说法这样做):

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();
}

希望对您有所帮助:-)