【问题标题】:How to filter *.abc from *.abcd files when using OpenFileDialog?使用 OpenFileDialog 时如何从 *.abcd 文件中过滤 *.abc?
【发布时间】:2013-07-25 09:09:30
【问题描述】:

我创建了一个 OpenFileDialog 对象,名为 openFileDialog。

调用 openFileDialog.ShowDialog 时,我希望能够选择只有扩展名 ".abc" 而不是 ".abcd" 的文件。

使用属性:

this.openFileDialog.Filter = "*.abc";

不起作用。也可以选择“.abcd”文件。

这里是完整的代码:

var openFileDialog = GetOpenFileDialog("abc",
                                       "*.abc",
                                       "anything (*.abc)|*.abc",
                                       "Select abc file to import...");

if (openFileDialog.ShowDialog() == DialogResult.OK)
{ DoJob(); }          

GetOpenFileDialog 在哪里:

private OpenFileDialog GetOpenFileDialog(string defaultExt, string fileName, string filter, string title)
    {
        return new OpenFileDialog
            {
                DefaultExt = defaultExt,
                FileName = fileName,
                Filter = filter,
                Title = title,
            };
    }

如果有任何帮助,我将不胜感激。谢谢!

【问题讨论】:

标签: c# winforms filter filtering openfiledialog


【解决方案1】:

使用 OpenFileDialog 的过滤器选项

this.openFileDialog.Filter = "abc files (*.abc)|*.abc"

【讨论】:

  • 删除了我的评论,但这是msdn link +1
  • @Sayse 您的链接适用于 WPF,但我认为这是 Windows 窗体,在这种情况下它将是 Filter Property
  • @JeppeStigNielsen - OpenFileDialog 是一样的,不是吗?
  • @Sayse 可能是这样。您的链接似乎是程序集 System.Windows.dll 中的类 System.Windows.Controls.OpenFileDialog 中的 Silverlight 版本。我的链接似乎是程序集System.Windows.Forms.dllSystem.Windows.Forms.FileDialog 类(System.Windows.Forms.OpenFileDialog 继承自)中的.NET Framework 版本。不确定它们是否与提问者同样相关,但两个文档中字符串的语法似乎相同。
  • @FreddieH 使用 Filter 属性不起作用。我仍然可以选择“.abcd”文件
【解决方案2】:

【讨论】:

  • 我设置了 this.openFileDialog.Filter = "*.abc" 但我仍然可以选择 ".abcd" 文件
  • @mirelvlad "*.abc" 不幸返回扩展名为 .abc、.abcd、.abcde、.abcdef 等的文件。
猜你喜欢
  • 1970-01-01
  • 2013-11-20
  • 1970-01-01
  • 1970-01-01
  • 2022-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多