C#中SaveFileDialog的多点扩展?

时间:2010-08-03 13:23:51

标签: c# savefiledialog

基本上我正在尝试设置SaveFileDialog的过滤器,比如说...“Xml Document( .asdf.xml)| .asdf.xml”。它会在选择文件时正确过滤文件,但实际保存文件时它只保存为“.xml”。这甚至支持吗?

我也想不出合适的解决方法,因为大多数解决方法似乎都需要手动更改文件名而不需要用户知道。

3 个答案:

答案 0 :(得分:4)

SupportMultiDottedExtensions = true;

答案 1 :(得分:1)

你试过这个吗?

SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "XML File (*.asdf.xml)|*.asdf.xml|All Files|";
sfd.SupportMultiDottedExtensions = true;

答案 2 :(得分:1)

我尝试使用SaveFileDialog创建一个快速获胜表单,并且我能够使用多点扩展名来保存文件。我正在使用VS2010和C#。这是我的按钮点击事件处理程序的代码:

private void button1_Click(object sender, EventArgs e)
{
    saveFileDialog1.Filter = "Xml Document (.asdf.xml)|*.asdf.xml";
    saveFileDialog1.ShowDialog();

    System.IO.FileStream fs = saveFileDialog1.OpenFile() as System.IO.FileStream;

    fs.Write(new byte[] { }, 0, 0);
    fs.Close();
}

我的过滤器是使用*.asdf.xml还是.asdf.xml

您的代码有何不同?如果它是相同的,您是在创建新文件还是覆盖现有文件?如果没有看到你的代码,我不确定还会有什么不同。

编辑/更新:刚刚看到sgrassie关于设置SupportMultiDottedExtension的答案。我没有设置它,所以也许它在C#/ .NET 4中默认为true。

HTH!