我使用了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
来通知用户他已经决定了错误的文件,但对我来说这不是一个好的解决方案。还有其他方法吗?
答案 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