使用C#在Visual Studio 2015中创建应用程序,我想将文件保存到用户想要的任何位置,因此我在项目中添加了SaveFileDialog
对象,但在设置属性后,我输入的文件名是什么,保存对话框显示:
文件名无效。
(我检查了文件路径和文件名中的字符)。
我的代码显示对话框:
DialogResult dr = saveFileDialog1.ShowDialog();
if (dr == System.Windows.Forms.DialogResult.OK)
{
Save(saveFileDialog1.FileName);
}
有什么问题?
答案 0 :(得分:1)
您应该删除Filter属性周围的双引号。
代码中的应该是
saveFileDialog1.Filter = "Product list|*.json";
双引号似乎混淆了SaveFileDialog检查所输入名称的有效性。 (注意文本在“另存为类型”组合框中的显示方式) 此外,如果您使用扩展名键入文件名,则此错误似乎消失。
首先,您的特定过滤器文本似乎导致了问题,因为它被解释为描述而不是强制性描述后跟一个|和过滤器规格要求的扩展名。
但是如果你这样写的话
saveFileDialog1.Filter = "\"Product files|*.json\"|*.json";
您将收到一个Argument Exception错误,指出提供的Filter字符串缺少所需的格式。
所以这里唯一的结论就是你不能在Filter字符串中使用双引号。