2016-04-02 45 views
1

使用C#在Visual Studio 2015中创建应用程序,我想将文件保存到用户想要的任何位置,所以我已经将SaveFileDialog对象添加到我的项目中,但设置属性后,文件名我输入,保存对话框说:saveFileDialog:文件名无效

文件名无效。

(我检查了文件名中的文件路径和字符)。

我的代码显示对话框:

DialogResult dr = saveFileDialog1.ShowDialog(); 
if (dr == System.Windows.Forms.DialogResult.OK) 
{ 
    Save(saveFileDialog1.FileName); 
} 

问题是什么?

enter image description here

enter image description here

+0

你是什么意思的保存(saveFileDialog1.FileName);'? –

+0

这是我用来将信息写入所选文件的方法。 – wiki

回答

1

您应该删除你的周围Filter属性的双引号。

代码应该是

saveFileDialog1.Filter = "Product list|*.json"; 

双引号,似乎混淆上键入名称的有效性SaveFileDialog检查。 (请注意文本如何显示在“另存为类型”组合框中)。
此外,如果您键入带扩展名的文件名,则此错误似乎消失。

起初,您的特定Filter文本似乎是导致问题的原因,因为它被解释为描述,而不是强制性描述,后跟|以及Filter规范所要求的扩展名。

而且,如果你把它写这样

saveFileDialog1.Filter = "\"Product files|*.json\"|*.json"; 

你会得到一个参数异常错误,指出所提供的过滤字符串所需格式的缺乏。

所以这里唯一的结论是,你不能在Filter字符串中使用双引号。

+0

非常感谢回复。 – wiki