private static void CopyCd() { if (!Directory.Exists(outputPath)) { Directory.CreateDirectory(outputPath); } char driveLetter = Char.ToUpperInvariant(drive[0]); if (!ignoreCdinfo) { Console.WriteLine("Retriving CD information"); AudioCDInformation cdInformation = CdromUtils.ReadAudioCDInformation(driveLetter); Console.WriteLine("Saving CD information to " + MetadataFileName); SaveAudioCDInformation(Path.Combine(outputPath, MetadataFileName), cdInformation); } CdromFileInfo[] tracks = CdromUtils.ReadAllTracks(driveLetter); foreach (CdromFileInfo trackFileInfo in tracks) { try { string outputFile = Path.Combine(outputPath, Path.GetFileName(trackFileInfo.Path)); CopyTrack(trackFileInfo, outputFile); } catch (Exception ex) { Console.Error.WriteLine("ERROR: " + ex.Message); } } }
private static void ValidateDrive() { if (drive.Length == 0 || !Char.IsLetter(drive[0]) || drive.Length > 2) { throw new ApplicationException("Invalid drive letter: " + drive); } if (!CdromUtils.IsDriveAudioCd(drive[0])) { throw new ApplicationException("Drive has no audio CD"); } }