如何在C#中仅选择所选文件夹中的XML文件?

时间:2016-03-01 04:29:58

标签: c# xml list folderbrowserdialog

我想将所选文件夹的所有xml文件添加到C#中的列表中。如果所有文件都只是xml,以下代码可以正常工作。

如果同一文件夹中有任何其他文件,我想过滤xml文件。

是否可以使用现有代码仅选择xml文件?

谢谢

FolderBrowserDialog folderDlg = new FolderBrowserDialog();
DialogResult result = folderDlg.ShowDialog();

if (result == DialogResult.OK)
{
    string[] files = Directory.GetFiles(folderDlg.SelectedPath);

    lblFolder.Text = "Folder : " + folderDlg.SelectedPath;
    lblFiles.Text = "No of Xml Found : " + files.Length.ToString();

    try
    {
        foreach (string filePath in files)
        {
            xmlFilePath.Add(filePath);

        }

        foreach (string file in files)
        {
            string fileName =Path.GetFileNameWithoutExtension(file);
            Version.Add(fileName);
        }

    }
    catch (System.Exception ex)
    {
        lbl_notifications.Text = ex.Message;
    }
}

2 个答案:

答案 0 :(得分:4)

GetFiles方法接受可选参数作为searchpattern(*搜索字符串以匹配路径中文件的名称)。

在您的情况下提供.xml过滤器,如下所示,仅从目录中获取xml文件。

string[] files = Directory.GetFiles(folderDlg.SelectedPath, "*.xml");

答案 1 :(得分:3)

Directory.GetFiles()函数有一个重载,它接受要包含在搜索中的文件类型的过滤器,因此您可以轻松使用"*.xml"仅搜索XML个文件:

string[] files = Directory.GetFiles(folderDlg.SelectedPath, "*.xml");