C# - 删除部分列表框项目

时间:2013-07-25 09:46:56

标签: c#

我有一个ListBox,它有一个目录中的文件集合,我需要从中删除扩展名。它们都是m4a格式,因此应该更容易一些。但是我搜索过并找不到解决方案。

我对编程非常陌生,并希望得到一些帮助。如果我可以请求一个例子,我会非常感激,请你使用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);
}

我不确定这段代码是如何工作的。我理解其中的大部分内容,但它是由朋友写的,以帮助我。这就是我之后要去做的原因。 再次感谢。

1 个答案:

答案 0 :(得分: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方法将字符串除以由给定字符分隔的子字符串数组。 在这种情况下,它是一个(escaped)反斜杠。 .Last()返回数组的最后一个元素。