我正在尝试对用户输入的文件名进行扩展SaveFileDialog并FileOpenDialog强制执行。我尝试使用问题 389070中提出的示例,但它没有按预期工作:
var dialog = new SaveFileDialog())
dialog.AddExtension = true;
dialog.DefaultExt = "foo";
dialog.Filter = "Foo Document (*.foo)|*.foo";
if (dialog.ShowDialog() == DialogResult.OK)
{
...
}
如果用户在恰好存在test文件的文件夹中键入文本,对话框将建议名称(而我真的只想在列表中看到)。更糟糕的是:如果用户选择,那么我确实会得到输出文件名。test.xmltest.xml*.footest.xmltest.xml
我怎样才能确保SaveFileDialog真的只允许用户选择一个*.foo文件?或者至少,它会在用户点击时替换/添加扩展名Save?
建议的解决方案(实现FileOk事件处理程序)仅完成部分工作,因为如果文件名的扩展名错误,我真的想禁用该Save按钮。
为了留在对话框中并更新FileOk处理程序中文本框中显示的文件名,以反映具有正确扩展名的新文件名,请参阅以下相关问题。