在c#中删除数组中的所有字符串

本文关键字:字符串 数组 删除 | 更新日期: 2023-09-27 18:15:45

我使用下面的代码来获取目录的内容:

string[] savefile = Directory.GetFiles(mcsdir, "*.bin");
comboBox1.Items.AddRange(savefile);

返回

C:'Users'Henry'MCS'save1.bin
C:'Users'Henry'MCS'save2.bin

如何使它只返回

save1.bin
save2.bin

请注意,这个应用程序将被其他人使用,所以名字并不总是"Henry"。谢谢你。

在c#中删除数组中的所有字符串

我建议使用DirectoryInfo.GetFiles和LINQ:

FileInfo[] savefile = new DirectoryInfo(mcsdir).GetFiles("*.bin");
comboBox1.Items.AddRange(savefile.Select(x => x.Name).ToArray());

使用LINQ:

var strs = savefile.Select(a => Path.GetFileName(a)).ToArray();

看minitech的建议:只要您得到FileInfo[]类型的数组,就不需要将其转换为字符串数组。只需将属性DisplayMember设置为您希望在ComboBox中显示的属性名称。

FileInfo[] savefile = new DirectoryInfo(mcsdir).GetFiles("*.bin");
comboBox1.DisplayMember = "Name";
comboBox1.DataSource = savefile;

使用此方法,您可以保留原始FileInfo[]数组中的所有附加信息(如文件的完整路径),同时仅显示您控制的短文件名(没有路径)。

(我假设你的问题是关于WinForms。如果您使用的是Silverlight或WPF,则需要使用"Target"属性设置该属性)

使用Path.GetFileName(string path)