在C#中,您可以在OpenFileDialog
对象上指定过滤器。
var dlg = new OpenFileDialog();
dlg.DefaultExt = ".xml";
dlg.Filter = "XML Files|*.xml";
有没有办法按名称自动选择文件?例如,如果我导航到xml文件的文件夹,是否有任何过滤选项会自动定位“myxml.xml”?
答案 0 :(得分:6)
是的,只需设置OpenFileDialog的FileName属性,如下所示:
dlg.FileName = "myxml.xml";
但是,如果在过滤器中使用该名称,则更合适。只需放置它而不是充当通配符的星号:
dlg.Filter = "XML Files|myxml.xml";
永远记住你可以有这样的多个过滤器:(将来可能会有用):
"Image Files (*.bmp, *.jpg)|*.bmp;*.jpg"
// -- OR --
"Text Files (*.txt)|*.txt|All Files (*.*)|*.*"
有关MSDN的过滤器的更多文档。
答案 1 :(得分:0)
是的,您实际上可以将过滤器设置为完整的文件名:
dlg.Filter = "myxml Files|myxml.xml";
请注意,选择此过滤器后,您将无法选择其他XML文件。如果您只想在显示和允许选择任何XML文件时默认使用该文件名,请使用FᴀʀʜᴀɴAɴᴀᴍ(原始)答案。现在,他将我的答案复制到他的答案中,你可以和他一起去。
答案 2 :(得分:0)
您可以做的是设置FileName属性,如下所示:
dlg.FileName = "myxml.xml";
或像这样设置Filter属性:
dlg.Filter = "XML files|file.xml";
(检查最后没有这样的空间" file.xml"非常重要,因为如果有,你的文件不会显示up,换句话说,OpenFileDialog不会修剪Filter属性)
如果您事先不知道文件名是什么,可以像这样使用DirectoryInfo和FileInfo:
DirectoryInfo dir = new DirectoryInfo("PATHHERE");
FileInfo[] files = dir.GetFiles();
并循环浏览文件以找到您要查找的文件