我正在尝试对用户输入的文件名进行扩展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.xml
test.xml
*.foo
test.xml
test.xml
我怎样才能确保SaveFileDialog
真的只允许用户选择一个*.foo
文件?或者至少,它会在用户点击时替换/添加扩展名Save
?
建议的解决方案(实现FileOk
事件处理程序)仅完成部分工作,因为如果文件名的扩展名错误,我真的想禁用该Save
按钮。
为了留在对话框中并更新FileOk
处理程序中文本框中显示的文件名,以反映具有正确扩展名的新文件名,请参阅以下相关问题。