Можно реализовать пользовательский iComparer, чтобы сделать сортировку. Считайте информацию о файле для файлов и сравните, как Вам нравится.
IComparer comparer = new YourCustomComparer();
Array.Sort(System.IO.Directory.GetFiles(), comparer);
Taglib # лучший. Это прямой перенос библиотеки TagLib C на C #.
Чтобы установить TagLib #, выполните следующую команду в консоли диспетчера пакетов в Visual Studio.
PM> Install-Package taglib
Распространение NuGet taglib-sharp можно найти по адресу http://nuget.org/packages/taglib .
Официальный репозиторий исходного кода находится по адресу https://github.com/mono/taglib-sharp .
Вот пример использования библиотеки:
TagLib.File file = TagLib.File.Create("mysong.mp3");
String title = file.Tag.Title;
String album = file.Tag.Album;
String length = file.Properties.Duration.ToString();
Вот проект sourceforge, который был написан для этого и, кажется, имеет несколько хороших обзоров:
http://csid3lib.sourceforge.net/
Я только читал Теги ID3, никогда их не записывали, поэтому я не могу конкретно это комментировать. Однако я считаю, что этот проект (на гораздо более ранней стадии) был тем, чем я занимался.