public CDAFileInfo(string path, bool deepLoad) : base(path, false) { try { string rootPath = System.IO.Path.GetPathRoot(path); if (!string.IsNullOrEmpty(rootPath)) { char letter = rootPath.ToUpperInvariant()[0]; using (CDDrive cd = new CDDrive()) { if (cd.Open(letter) && cd.Refresh()) { string trackStr = path.Replace(rootPath, "").ToLowerInvariant().Replace("track", "").Replace(".cda", ""); _track = -1; if (int.TryParse(trackStr, out _track) && _track > 0) { if (cd.IsAudioTrack(_track)) { _duration = cd.GetSeconds(_track); _discId = cd.GetCDDBDiskID(); // Check whether the disc is already added to our FreeDb lite database _cdEntry = CDEntry.LoadPersistentDisc(_discId); if (_cdEntry == null) { RefreshDisk(); } return; } } } } _cdEntry = null; } } catch(Exception ex) { Logger.LogException(ex); _cdEntry = null; } }