BelhardTraining.LessonIO.Program.TryPrintNonExistingDriveInfo C# (CSharp) Метод

TryPrintNonExistingDriveInfo() статический приватный Метод

Демонстрация получения информации о несуществующем диске В этом случае можно читать только свойства Name и DriveType При этом DriveType = NoRootDirectory
static private TryPrintNonExistingDriveInfo ( ) : void
Результат void
        static void TryPrintNonExistingDriveInfo()
        {
            // Формируем массив букв используемых дисков
            char[] usedLetters = DriveInfo.GetDrives().Select(d => d.Name[0]).OrderBy(ch => ch).ToArray();
            // Формируем массив английских букв от C до Z
            // Для это пользуемся тем фактом что в кодировке UTF-16 они идут друг за другом
            char[] lettersFromC = Enumerable.Range(0, 24).Select(i => ((char)('C' + i))).ToArray();
            // Получаем первую незанятую букву диска, если она есть
            char firstUnusedLetter = lettersFromC.Except(usedLetters).FirstOrDefault();
            if (firstUnusedLetter == '\0')
            {
                Console.WriteLine("На данном компьютере заняты все буквы дисков!");
            }
            else
            {
                DriveInfo nonExistingDrive = new DriveInfo(firstUnusedLetter + ":");
                Console.WriteLine(
                    "Диск {0} не существует. Его тип: {1}",
                    nonExistingDrive.Name, nonExistingDrive.DriveType
                );
            }
        }