c# - 获取文件扩展名以填充到 C# 中的 ComboBox

标签 c#

所以我有一个文件夹,其中包含许多扩展名的图像,例如 .ico.png.jpg 等,我'我们使用以下代码将其填充到 comboBox 中:

string caminho = @"C:\Users\User1\Desktop\Test\";
DirectoryInfo dir = new DirectoryInfo(caminho);
FileInfo[] fi = dir.GetFiles();
foreach (var ficheiro in fi)
{
    string caminhoF = caminho + ficheiro.ToString();
    string extension = Path.GetExtension(caminhoF);
    comboBox1.Items.Add(extension);
}

代码正在获取此路径中的所有现有扩展并将其放在 comboBox 上,但它显示如下:

.ico
.ico
.ico
.png
.png
.jpg
.jpg

我想简单地显示每个现有的扩展程序,比如将它们分组。

你能帮我吗?

最佳答案

您可以从FileInfo 中获取文件扩展名。您还可以使用 Linq Distinct() 来获得独特的扩展。

string caminho = @"C:\Users\User1\Desktop\Test\";
DirectoryInfo dir = new DirectoryInfo(caminho);
var extensions = dir.GetFiles().Select(fi => fi.Extension).Distinct();
foreach (var extension in extensions) {
    comboBox1.Items.Add(extension);
}

关于c# - 获取文件扩展名以填充到 C# 中的 ComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45309079/

相关文章:

c# - 在 DataTemplate 内的 ListView 上添加 EventTrigger 导致 XamlParseException

c# - 异步方法将控制权来回切换到下一个异步方法

c# - 设置具有相同文本的多个标签

c# - 异步更新 ASP.NET 面板

具有选择不同列的 c# mysql 查询

c# - 并发运行两次时如何取消循环作业?

C# 如何消除comboBox 中的重复值?

C# 相当于 "EXCEPTION_CONTINUE_EXECUTION"与异常过滤器

c# - 如何通过使用反射设置双泛型来执行泛型方法

javascript - 重定向到 ASP MVC 中的另一个页面后,如何使 Toastr Notification 保持事件状态