private static void AddDirectory(Database db, string dir) { Console.WriteLine ("Adding files in: " + dir); foreach (string file in Directory.GetFiles (dir)) { TagLib.File afw = null; try { afw = TagLib.File.Create(file); } catch (Exception) { continue; } Track track = new Track (); track.Artist = afw.Tag.FirstAlbumArtist; track.Album = afw.Tag.Album; track.Title = afw.Tag.Title; track.Year = (int)afw.Tag.Year; track.Format = Path.GetExtension (file).Substring (1); track.Duration = afw.Properties.Duration; track.Genre = afw.Tag.JoinedGenres; track.TrackNumber = (int)afw.Tag.Track; track.TrackCount = (int)afw.Tag.TrackCount; track.DateAdded = DateTime.Now; track.DateModified = DateTime.Now; track.FileName = file; track.Size = (int) new FileInfo (track.FileName).Length; db.AddTrack (track); } foreach (string subdir in Directory.GetDirectories (dir)) { AddDirectory (db, subdir); } }