如何限制哪些文件应该在OpenFileDialog中显示?

时间:2013-12-07 09:11:43

标签: c# winforms openfiledialog

我使用了http://msdn.microsoft.com/ru-ru/library/system.windows.forms.openfiledialog(v=vs.110).aspx

中的信息

这样:

Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();

 dlg.DefaultExt = ".xml"; // this is how I get only required extension 
 dlg.Filter = "XML files (*.xml)|*.xml"; // I guess, this should be modified, don't know how.
dlg.InitialDirectory = _directoryName1;
// here we go
Nullable<bool> result = dlg.ShowDialog();
            if (result == true)
            {
                string path = dlg.FileName;

在初始目录中,我必须使用具有相同xml扩展名的文件类型,其名称以script-Data...GeneralParam...开头。所以我需要在OpenFileDialog中只显示名称以script-Data...开头的文件。

我知道,我可以通过解析path来通知用户他已经决定了错误的文件,但对我来说这不是一个好的解决方案。还有其他方法吗?

3 个答案:

答案 0 :(得分:4)

试试这个。它会帮助你。如果你想过滤文件名,以“script-Data”开头只在你的应用程序中执行此操作。

OpenFileDialog of = new OpenFileDialog();
of.Filter = "Excel Files|script-Data*.xls;ascript-Data*.xlsx;script-Data*.xlsm";
of.ShowDialog();

答案 1 :(得分:3)

您已设置Filter属性。因此,.xml打开时,您只能看到OpenFileDialog个文件。但是,如果您希望filter filenames显示在OpenFileDialog,则可以设置FileName属性,因为filter没有其他选项filename 1}}

试试这个:

dlg.FileName = "script-Data*";

答案 2 :(得分:1)

当然,您可以使用预期的预定义设置准备OpenFileDialog,但是 你不能阻止你的用户在输入框中输入与预期模式完全不同的东西。例如,如果您的用户在输入框中键入"*.*"并按确定他/她可以选择显示的任何文件,但您可以检查已选择的内容没有退出 {{1}并告知您的用户错误。

您需要做的就是订阅活动OpenFileDialog

FileOk