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