我正在尝试编写用于在 Silverlight 4.0 中将文件保存到本地磁盘的逻辑。为此,我正在使用 SaveFileDialog
类。它工作正常。但是当我试图保存到一个已经打开以供查看的文件时,我遇到了一个未处理的异常。应用程序也会立即崩溃。
Silverlight 3 也有类似的问题。我通过在 application_unhandledexception 事件中搜索异常中的一些 SaveFileStream
文本来解决这个问题。我原以为这会在 Silverlight 4 中得到处理,但现在情况变得更糟了。即使是解决方法现在也不起作用。
我已经在 SaveFileDialog
逻辑周围放置了 try catch 并且 IOException
(另一个进程正在使用文件)在这里被安全捕获,但是我上面描述的异常立即是触发。
如有任何帮助,我们将不胜感激。
更新:这种情况发生在 excel 文件上,而不会发生在 txt 文件上。我认为所有 MS Office 文件都会发生这种情况。
最佳答案
请问您是如何保存文件的? 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/