C# SaveFileDialog 从多个扩展名中设置一个在未键入扩展名时自动添加扩展名

Posted

技术标签:

【中文标题】C# SaveFileDialog 从多个扩展名中设置一个在未键入扩展名时自动添加扩展名【英文标题】:C# SaveFileDialog setting one from multiple extensions Automatically adding extension when extensions are not typed 【发布时间】:2012-07-16 14:08:49 【问题描述】:

我正在使用SaveFileDialog 保存图像。

控件的过滤器为:PNG|*png;|GIF|*gif;|BMP|*bmp;|JPEG|*jpg;*jpeg;

但是,如果扩展名没有输入文件名,它不会自动添加扩展名。

我知道我可以设置DefaultExt,但是在从多个扩展名中进行选择时我不知道如何处理。

【问题讨论】:

【参考方案1】:

您遇到的问题是您使用的过滤器根据FileDialog.Filter 的规则不正确(您在模式中遗漏了. 字符)。在SaveFileDialog 自动添加扩展之前,它首先验证选定的过滤器。在您的情况下,此验证失败;这就是为什么自动添加没有按预期工作的原因。

尝试以下过滤器:

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

明确的dialog.AddExtension = true; 在这里不会有什么坏处,尽管我相信这是默认设置。

【讨论】:

哦!我还发现过滤器是问题,所以我从其他程序复制并粘贴了过滤器,它运行良好,但我不知道为什么,,和......谢谢你告诉我失踪DOT 是原因 @jn4kim:是的,你不需要AddExtension = true,所以这是你的实际问题。 +1 你说得对,他的问题在于过滤器本身。实际上,对话框总是会添加扩展名,AddExtension 只会改变它的选择方式。请@jn4kim 不接受我的回答,这是错误的。 @Adriano 好的,你的回答也很有帮助^^;

以上是关于C# SaveFileDialog 从多个扩展名中设置一个在未键入扩展名时自动添加扩展名的主要内容,如果未能解决你的问题,请参考以下文章

在C#中,在saveFileDialog中保存选定路径中的多个文件

如何从 SaveFileDialog.FileName 仅获取目录名称

如何使用 saveFileDialog 在 C# 中保存图像? [复制]

在哪里可以找到 SaveFileDialog 的选定文件路径(C#,Visual Studio)

c# savefiledialog 锁定到特定目录? [复制]

C#中SaveFileDialog 和OpenFileDialog 的用法