public static int LoadSongs(string path)
{
var watch = new Stopwatch();
watch.Start();
SongLibrary?.Clear();
var songCount = 0;
var files = new List<string>();
foreach (var t in Filetypes)
files.AddRange(GetFiles(path, t));
foreach (var file in files)
{
try
{
var tagFile = File.Create(file);
_songName = tagFile.Tag.Title ?? Path.GetFileNameWithoutExtension(file);
_songArtist = tagFile.Tag.FirstAlbumArtist ?? tagFile.Tag.Performers[0];
SongLibrary?.Add(new Songs
{
Name = _songName,
Artist = _songArtist,
Album = tagFile.Tag.Album,
Length = tagFile.Properties.Duration.ToString(@"mm\:ss"),
Track = tagFile.Tag.Track.ToString(),
FileName = tagFile.Name,
AltName = Path.GetFileNameWithoutExtension(file)
});
songCount++;
}
catch
{
Console.WriteLine(@"Metadata could not be created for " + file);
}
}
watch.Stop();
Console.WriteLine(songCount + @" songs loaded in " + watch.ElapsedMilliseconds + @" milliseconds");
return songCount;
}