Получение IOException было необработанным в C # - PullRequest
0 голосов
/ 21 апреля 2011

У меня есть функция, которая позволяет приложению получить общий размер вашего жесткого диска.

        public static ulong GetLogicalDisk()
    {
        ulong num = 0L;
        string[] logicalDrives = Environment.GetLogicalDrives();
        for (int i = 0; i < logicalDrives.Length; i++)
        {
            System.IO.DriveInfo info = new System.IO.DriveInfo(logicalDrives[i].ToString());
            if (info.DriveType == System.IO.DriveType.Fixed)
            {
                num += (ulong)info.TotalSize; //Exception here.
                Console.WriteLine(info.TotalSize);
            }
        }
        Console.WriteLine(num);
        return num;
    }

Когда я пытаюсь запустить приложение в C #, я получаю следующее сообщение об ошибке на num += (ulong)info.TotalSize;

IOException было не обработано

Может ли кто-нибудь здесь помочь мне с этим? В чем проблема?

Ответы [ 2 ]

1 голос
/ 21 апреля 2011

Я предполагаю, что у вас есть доступ к общему сетевому ресурсу, которого нет, или к приводу CD-ROM, который не вставлен.

Используйте DriveInfo.IsReady, чтобы проверить, доступен ли диск, прежде чем читать размер

1 голос
/ 21 апреля 2011

Возможно, он пытается получить доступ к дисководу гибких дисков или CD-ROM, но там, где не смонтирован физический носитель.

Из документов :

Произошла ошибка ввода / вывода (например, ошибка диска или диск не был готов).

Можете ли вы распечатать Имя диска до того, как произойдет исключение - держу пари, это ваш диск A: ... ... 1013 *

...