C# SaveFileDialog设置多个扩展名中的一个 自动添加扩展名当未输入扩展名时

4
我正在使用SaveFileDialog保存图像。
控件的筛选器是:PNG|*png;|GIF|*gif;|BMP|*bmp;|JPEG|*jpg;*jpeg; 然而,如果文件名中没有输入扩展名,则不会自动添加扩展名。
我知道可以设置DefaultExt,但是当涉及到选择多个扩展名时,我不知道该如何处理。
1个回答

3
你遇到的问题是你使用的筛选器不符合FileDialog.Filter规则(你在模式中省略了.字符)。在SaveFileDialog自动添加扩展名之前,它会先验证所选的筛选器。在你的情况下,此验证失败,这就是为什么自动添加扩展名没有按你的预期工作的原因。

请尝试以下筛选器:

PNG|*.png|GIF|*.gif|BMP|*.bmp|JPEG|*.jpg;*.jpeg

明确的dialog.AddExtension = true;在这里不会有影响,尽管我相信这是默认值。


哦!我也发现过滤器是问题所在,所以我从其他程序中复制并粘贴了过滤器,它运行良好,但我不知道为什么......谢谢你告诉我缺少点号是原因。 - jn4kim
@jn4kim:是的,你不需要 AddExtension = true,所以这就是你实际的问题。 - Ani
+1 你说得对,他的问题确实出在过滤器本身。实际上,对话框总是会添加扩展名,AddExtension 只会改变它被选中的方式。请 @jn4kim 取消采纳我的答案,它是错误的。 - Adriano Repetti
@Adriano 好的,你的回答也很有帮助 ^^; - jn4kim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接