我想将所选文件夹的所有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;
}
}
答案 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");