saveFileDialog:文件名无效

Posted

技术标签:

【中文标题】saveFileDialog:文件名无效【英文标题】:saveFileDialog: The file name is not valid 【发布时间】:2016-04-02 06:30:41 【问题描述】:

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

文件名无效。

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

显示对话框的代码:

DialogResult dr = saveFileDialog1.ShowDialog();
if (dr == System.Windows.Forms.DialogResult.OK)

     Save(saveFileDialog1.FileName);

有什么问题?

【问题讨论】:

Save(saveFileDialog1.FileName); 是什么意思? 这是我将信息写入用户所选文件的方法。 【参考方案1】:

您应该删除过滤器属性周围的双引号。

在代码中应该是

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

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

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

但如果你这样写

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

您将收到参数异常错误,指出提供的过滤器字符串缺少所需的格式。

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

【讨论】:

非常感谢您的回复。

以上是关于saveFileDialog:文件名无效的主要内容,如果未能解决你的问题,请参考以下文章

使用SaveFileDialog保存文件

SaveFileDialog 现有文件

从 SaveFileDialog 创建、写入和打开文本文件

禁用 savefiledialog 的文件名框

Winform SaveFileDialog Word

SaveFileDialog c#的默认文件名