Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        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");
            }
        }