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

Я бы сказал, сделайте это в viewmodel и выставите простую связующую коллекцию, другой вариант - это конвертер. –

+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

Смежные вопросы