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

标签 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

最佳答案

请问您是如何保存文件的? Stream 是否已正确冲洗、关闭和处置?

以这个为例(注意:有很多替代方法可以做到这一点):

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

希望对您有所帮助 :-)

关于c# - 保存到 silverlight 中已打开的文件时出现未处理的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5868415/

相关文章:

C# NullReference 异常和 ReSharper 建议

c# - 递归函数相乘

c# - KeyVault GetSecretAsync 永远不会返回

c# - Windows Phone 8 推送通知空 channel uri

mysql - MySQL Connector Net 6.8.3 的问题

c# - 是否可以在不序列化的情况下将对象从 SilverLight 传递到 JavaScript?

wpf - 如何在silverlight中在网格周围设置阴影?

.net - 哪些 .NET Framework 类实现 IDisposable

.net - 导航属性 'SenderId' 不是类型 'Conversation' 上的声明属性

silverlight - Silverlight 4 的工具提示中的 ShowDuration 属性无法解析