加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – System.Windows.Forms.SaveFileDialog不执行默认扩展

发布时间:2020-12-15 03:56:40 所属栏目:百科 来源:网络整理
导读:我试图使SaveFileDialog和FileOpenDialog强制对用户输入的文件名的扩展名.我试过使用 question 389070中提出的示例,但是它不能按照预期的方式工作: var dialog = new SaveFileDialog())dialog.AddExtension = true;dialog.DefaultExt = "foo";dialog.Filter
我试图使SaveFileDialog和FileOpenDialog强制对用户输入的文件名的扩展名.我试过使用 question 389070中提出的示例,但是它不能按照预期的方式工作:
var dialog = new SaveFileDialog())

dialog.AddExtension = true;
dialog.DefaultExt = "foo";
dialog.Filter = "Foo Document (*.foo)|*.foo";

if (dialog.ShowDialog() == DialogResult.OK)
{
    ...
}

如果用户在文件test.xml存在的文件夹中键入文本测试,该对话框将建议名称为test.xml(而我真的只想在列表中看到* .foo).更糟糕的是:如果用户选择test.xml,那么我确实会将test.xml作为输出文件名.

如何确保SaveFileDialog真的只允许用户选择* .foo文件?或至少,当用户单击“保存”时,它会替换/添加扩展名?

建议的解决方案(实现FileOk事件处理程序)仅执行部分作业,因为如果文件名有错误的扩展名,我真的想禁用保存按钮.

为了保留对话框并更新FileOk处理程序文本框中显示的文件名,以反映具有正确扩展名的新文件名,请参阅following related question.

解决方法

AFAIK没有可靠的方式强制执行给定的文件扩展名.无论如何,验证正确的扩展是一个很好的做法,一旦对话框关闭,并通知用户,如果扩展名不匹配,他选择了一个无效的文件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读