2013-07-25 64 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