我使用此代码获取目录的内容:
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"。 谢谢。
答案 0 :(得分:6)
我建议改用DirectoryInfo.GetFiles
和LINQ:
FileInfo[] savefile = new DirectoryInfo(mcsdir).GetFiles("*.bin");
comboBox1.Items.AddRange(savefile.Select(x => x.Name).ToArray());
答案 1 :(得分:3)
答案 2 :(得分:3)
使用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"属性设置属性。