From a90d637c7a8bc9c8869c01425bba2225dd09a279 Mon Sep 17 00:00:00 2001 From: g3gg0 Date: Sun, 7 Jan 2024 22:04:19 +0100 Subject: [PATCH] make ID3 reading exception-safe --- TeddyBench/TrackSortDialog.cs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/TeddyBench/TrackSortDialog.cs b/TeddyBench/TrackSortDialog.cs index 6db5d2a..7c35377 100644 --- a/TeddyBench/TrackSortDialog.cs +++ b/TeddyBench/TrackSortDialog.cs @@ -30,7 +30,7 @@ protected override void OnLoad(EventArgs e) { base.OnLoad(e); - var fileTuples = FileNames.Select(f => new Tuple(f, new Mp3(f, Mp3Permissions.Read).GetAllTags().Where(t => t.Track.IsAssigned).FirstOrDefault())); + var fileTuples = FileNames.Select(f => new Tuple(f, GetTag(f))); foreach (Tuple item in fileTuples.OrderBy(i => (i.Item2 == null) ? int.MaxValue : i.Item2.Track.Value)) { @@ -40,6 +40,22 @@ protected override void OnLoad(EventArgs e) UpdateView(); } + private Id3Tag GetTag(string f) + { + try + { + Mp3 mp3 = new Mp3(f, Mp3Permissions.Read); + + Id3Tag ret = mp3.GetAllTags().Where(t => t.Track.IsAssigned).FirstOrDefault(); + + return ret; + } + catch(Exception ex) + { + return null; + } + } + private void UpdateView() { lstTracks.Items.Clear();