2013-07-25 65 views
0

我有一个ListBox它有一个目录中的文件集合,我需要从它们中删除扩展名。它们都将是m4a格式,所以应该使它更容易一些。但是我已经搜索并找不到解决方案。C# - 删除部分列表框项目

我对编程非常陌生,希望得到一些帮助。如果我可以请求一个例子,我将非常感激,请您使用lstSong而不是占位符,因为我对于什么是占位符而不是例子中感到困惑。

按照要求写入到它的代码:

string[] songspaths = System.IO.Directory.GetFiles(librarypath + "/" + albumpath + "/" + songpath); 

List<string> listsongs = new List<string>(); 

foreach (var f in songspaths) 
{ 
    string songs = f.Split('\\').Last(); 
    lstSong.Items.Add(songs); 
} 

我不能确定这个代码完全是如何工作的。我了解它的大部分内容,但它是由朋友写的来帮助我的。这就是为什么我之后要这样做。 再次感谢。

+0

我会说在视图模型中做到这一点,并公开一个简单的可绑定集合,另一个选项是转换器。 –

+1

你如何将这个集合绑定到你的列表框?发布代码。它甚至是WPF或WinForms? –

+0

你有'文件集合'还是'文件名集合'?你是否试图删除每个文件名的最后四个字符? – Sheridan

回答

0

了解你的评论你只需要文件的文件名,没有路径或扩展名。 对于您可以使用Path.GetFileNameWithoutExtension

string[] songspaths = System.IO.Directory.GetFiles(librarypath + "/" + albumpath + "/" + songpath); // Get all the files from the specified directory 

List<string> listsongs = new List<string>(); 

foreach (var f in songspaths) 
{ 
    lstSong.Items.Add(Path.GetFileNameWithoutExtension(f)); // Store the filename without path or extension in the list 
} 

,并解释你的朋友已写的代码:

string songs = f.Split('\\').Last(); 

string.Split方法diviedes串入由给定的字符分隔的子字符串数组。 在这种情况下,它是(escaped)反斜杠。 .Last()返回数组的最后一个元素。

+0

完美的工作,现在我的程序的一部分工作,因为它应该。谢谢你的帮助。 – Tom

+0

不客气;-) – Koen