Silverlight SaveFileStream无声失败

时间:2011-03-08 06:26:25

标签: silverlight-4.0 c#-4.0 savefiledialog

我有一小段代码似乎是从Silverlight 4.0保存文件的教科书示例,但它似乎不起作用。

以下代码段来自按钮点击处理程序:

var saveDialog = new SaveFileDialog() { Filter = "All Files(*.*)|*.*" };

if (saveDialog.ShowDialog() == true)
{
    using (var stream = saveDialog.OpenFile())
    using (var writer = new StreamWriter(stream))
    {
        writer.WriteLine("Hello, World!");
        writer.Flush();
        writer.Close();
    }
}

我尝试将文件保存到许多不同的位置,所有这些都具有相同的行为:

  • SaveFileDialog似乎表现正常。
  • 显示SaveFileStream(来自调试器)以正常运行。
  • 致电writer.Flush()后,BaseStream前进至第15位。
  • 不会抛出异常。
  • 执行该块后,我无法使用Windows资源管理器找到该文件。

在我看来,代码太简单了,在正常情况下不能失败。这就引出了我的问题:我的情况有什么不妥?为什么保存似乎成功完成,但文件无处可寻?安全设定?代码本身?我很茫然。

更新

我尝试过更多的东西,但仍然没有运气。我在浏览器外运行了具有相同症状的应用程序,将SaveFileDialog提升为类变量。该应用程序的行为类似于没有错误,但保存位置(我的Documents文件夹,在Vista中)中没有文件出现。

情节变浓

我正在使用调试器,发现了其他奇怪的行为。致电saveDialog.OpenFile()后,该文件将显示在目标位置。它保留在每个语句之后,但在调用writer.Close()后被删除。为什么在流关闭时会自动删除文件?

提前感谢您的帮助!

0 个答案:

没有答案