ComboBox显示文件名

时间:2017-02-28 09:01:28

标签: c# wpf combobox

我在Windows窗体中创建了一个comboBox,在这个comboBox中我想在特定目录中显示文件名。

我的代码表格1:

 private string path = (@"C:\Users\khaab\Documents\visual studio 2015\Projects\ReadingXML\ReadingXML\bin\Debug\Customers");

private void SelectConfigComboBox_DropDown(object sender, EventArgs e)
{
 List<String> Configurations = Directory.EnumerateDirectories(path).ToList();
 Path.GetFileName(path);
 SelectConfigComboBox.DataSource = Configurations;
}

我现在的问题是,当我点击ComboBox时,它会显示整个路径名,我只想要该目录中文件的名称。

4 个答案:

答案 0 :(得分:1)

枚举所有文件后,

使用Path.GetFileName扩展方法将Select方法应用于每个文件:

private void SelectConfigComboBox_DropDown(object sender, EventArgs e)
{
   List<String> Configurations = Directory.EnumerateFiles(path)
                                          .Select(p => Path.GetFileName(p))
                                          .ToList();
   SelectConfigComboBox.DataSource = Configurations;
}

答案 1 :(得分:0)

获取所有fileEntries(完整路径),然后使用Path.GetFileName()仅获取每个文件的文件名:

List<String> Configurations = new List<string>();
string [] fileEntries = Directory.GetFiles(path);
foreach(string fileName in fileEntries)
{
  Configurations.Add(Path.GetFileName(fileName);
}
SelectConfigComboBox.DataSource = Configurations;

答案 2 :(得分:0)

在设置DataSource之前,使用Path.GetFileName获取Directory.EnumerateDirectories(path).ToList()结果中的项目

答案 3 :(得分:0)

FileInfo具有Name属性,仅包含文件名部分。

var files= new DirectoryInfo(path).GetFiles("*");
var firstFilename = files[0].Name;