【问题标题】:Save filedialog not working保存文件对话框不起作用
【发布时间】:2013-07-31 10:51:51
【问题描述】:

这里有点奇怪,我正在编写一个提供保存文件选项的应用程序,保存文件对话框被正常编码

SaveFileDialog ofd = new SaveFileDialog();

对话框出现没有问题,单击保存不会引发任何错误,但是没有保存文件,我不知道为什么,有什么想法吗?我google了一下,没找到类似的问题

【问题讨论】:

  • 当你说没有文件被保存时,我想你误解了对话框的使用。你能展示你的代码吗?
  • 您必须自己编写代码来进行实际的保存。 SaveFileDialog 只允许用户选择保存文件的路径。
  • 您需要显示更多代码,主要是显示对话框和保存文件的代码

标签: c# savefiledialog


【解决方案1】:

SaveFileDialog 类不保存任何内容,它会提示用户选择位置和文件名来保存文件。保存文件是你的工作

从上面的 MSDN 链接中提取的这个例子解释了这个概念

private void button1_Click(object sender, System.EventArgs e)
{
     Stream myStream ;
     SaveFileDialog saveFileDialog1 = new SaveFileDialog();

     saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"  ;
     saveFileDialog1.FilterIndex = 2 ;
     saveFileDialog1.RestoreDirectory = true ;

     if(saveFileDialog1.ShowDialog() == DialogResult.OK)
     {
         if((myStream = saveFileDialog1.OpenFile()) != null)
         {
             // Code to write the stream goes here.
             myStream.Close();
         }
     }
}

【讨论】:

  • 我正在尝试使用此处找到的代码保存到文件中:stackoverflow.com/questions/6674555/… 但我收到一个错误,说 RFesponse 在当前上下文中不存在,有谁知道如何解决这个
  • 该代码用于 ASP.NET 项目,其中 Response 是用于将文本返回到客户端浏览器的内部对象。你不在同一个上下文中
  • 你知道我怎样才能在同样的情况下得到吗?抱歉,我只是一个 c# 菜鸟,谷歌搜索似乎没有帮助
【解决方案2】:
Stream stream;
ofd.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"  ;
     ofd.FilterIndex = 2 ;
     ofd.RestoreDirectory = true ;

if(ofd.ShowDialog() == DialogResult.OK)
     {
         if((stream = ofd.OpenFile()) != null)
         {
    //FileStream might be better for you but since i don't know what you write, this will serve as an example
             stream.Write(bytes,offset,count);
             stream.Close();
         }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-17
    • 2016-12-28
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多